From: Lennart Poettering Date: Fri, 22 Mar 2019 10:25:49 +0000 (+0100) Subject: core: add new call unit_reset_accounting() X-Git-Tag: v243-rc1~522^2~5 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=9b2559a13e5b8ccdf3b429f3c7e82159e2a733b5;p=thirdparty%2Fsystemd.git core: add new call unit_reset_accounting() It's a simple wrapper for resetting both IP and CPU accounting in one go. This will become particularly useful when we also needs this to reset IO accounting (to be added in a later commit). --- diff --git a/src/core/cgroup.c b/src/core/cgroup.c index 88acb593cd2..5bf6224e311 100644 --- a/src/core/cgroup.c +++ b/src/core/cgroup.c @@ -3210,6 +3210,17 @@ int unit_reset_ip_accounting(Unit *u) { return r < 0 ? r : q; } +int unit_reset_accounting(Unit *u) { + int r, q; + + assert(u); + + r = unit_reset_cpu_accounting(u); + q = unit_reset_ip_accounting(u); + + return r < 0 ? r : q; +} + void unit_invalidate_cgroup(Unit *u, CGroupMask m) { assert(u); diff --git a/src/core/cgroup.h b/src/core/cgroup.h index 050b963579c..bfb2fa0a53b 100644 --- a/src/core/cgroup.h +++ b/src/core/cgroup.h @@ -204,6 +204,7 @@ int unit_get_ip_accounting(Unit *u, CGroupIPAccountingMetric metric, uint64_t *r int unit_reset_cpu_accounting(Unit *u); int unit_reset_ip_accounting(Unit *u); +int unit_reset_accounting(Unit *u); #define UNIT_CGROUP_BOOL(u, name) \ ({ \ diff --git a/src/core/scope.c b/src/core/scope.c index 7f830522585..bb1e60dd11f 100644 --- a/src/core/scope.c +++ b/src/core/scope.c @@ -330,8 +330,7 @@ static int scope_start(Unit *u) { return r; (void) unit_realize_cgroup(u); - (void) unit_reset_cpu_accounting(u); - (void) unit_reset_ip_accounting(u); + (void) unit_reset_accounting(u); unit_export_state_files(u); diff --git a/src/core/slice.c b/src/core/slice.c index 15b18bcad35..489d5ace6a1 100644 --- a/src/core/slice.c +++ b/src/core/slice.c @@ -230,8 +230,7 @@ static int slice_start(Unit *u) { return r; (void) unit_realize_cgroup(u); - (void) unit_reset_cpu_accounting(u); - (void) unit_reset_ip_accounting(u); + (void) unit_reset_accounting(u); slice_set_state(t, SLICE_ACTIVE); return 1; diff --git a/src/core/unit.c b/src/core/unit.c index 9dbfdb43d5e..99b7acbef15 100644 --- a/src/core/unit.c +++ b/src/core/unit.c @@ -5393,8 +5393,7 @@ int unit_prepare_exec(Unit *u) { (void) unit_realize_cgroup(u); if (u->reset_accounting) { - (void) unit_reset_cpu_accounting(u); - (void) unit_reset_ip_accounting(u); + (void) unit_reset_accounting(u); u->reset_accounting = false; }