]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
core: add new call unit_reset_accounting()
authorLennart Poettering <lennart@poettering.net>
Fri, 22 Mar 2019 10:25:49 +0000 (11:25 +0100)
committerLennart Poettering <lennart@poettering.net>
Fri, 12 Apr 2019 12:25:44 +0000 (14:25 +0200)
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).

src/core/cgroup.c
src/core/cgroup.h
src/core/scope.c
src/core/slice.c
src/core/unit.c

index 88acb593cd2e8d7f8452dfae6c8cf0cd577521d4..5bf6224e3111b019ca87cef7ee58c70af4be2f35 100644 (file)
@@ -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);
 
index 050b963579cb6b8ec88187d2eda5fff7a32452f8..bfb2fa0a53b520254097838bc2b8ac2af0148fd9 100644 (file)
@@ -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)                       \
         ({                                              \
index 7f830522585e051f68faecacc4e379f817de0a0e..bb1e60dd11fa56ab4b589f01ab43afbeb6b5931d 100644 (file)
@@ -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);
 
index 15b18bcad3562fb9876a80db1a452e73a1eca0ff..489d5ace6a1d70d756abb7c13921cef1ee9f1b5a 100644 (file)
@@ -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;
index 9dbfdb43d5e9e9a1b282b496cb6c5974e7140e12..99b7acbef15f43a035d5a4e0abbec2c89671ba25 100644 (file)
@@ -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;
         }