diff options
author | Lennart Poettering <lennart@poettering.net> | 2019-03-22 11:25:49 +0100 |
---|---|---|
committer | Lennart Poettering <lennart@poettering.net> | 2019-04-12 14:25:44 +0200 |
commit | 9b2559a13e5b8ccdf3b429f3c7e82159e2a733b5 (patch) | |
tree | c49c9b1111c437c31d74d21e3feb41a0598caba4 | |
parent | cc6625212f4a2cf41e2fe2cbe64ea71152a377b8 (diff) | |
download | systemd-9b2559a13e5b8ccdf3b429f3c7e82159e2a733b5.tar.gz |
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).
-rw-r--r-- | src/core/cgroup.c | 11 | ||||
-rw-r--r-- | src/core/cgroup.h | 1 | ||||
-rw-r--r-- | src/core/scope.c | 3 | ||||
-rw-r--r-- | src/core/slice.c | 3 | ||||
-rw-r--r-- | src/core/unit.c | 3 |
5 files changed, 15 insertions, 6 deletions
diff --git a/src/core/cgroup.c b/src/core/cgroup.c index 88acb593cd..5bf6224e31 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 050b963579..bfb2fa0a53 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 7f83052258..bb1e60dd11 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 15b18bcad3..489d5ace6a 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 9dbfdb43d5..99b7acbef1 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; } |