]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
cgroup: add a new macro for determining log level for cgroup attr write failures
authorLennart Poettering <lennart@poettering.net>
Tue, 20 Nov 2018 19:18:07 +0000 (20:18 +0100)
committerLennart Poettering <lennart@poettering.net>
Fri, 23 Nov 2018 11:24:37 +0000 (12:24 +0100)
For now, let's use it only at one place, but a follow-up commit will
make more use of it.

src/core/cgroup.c

index 8f63f4ba5a1546f044782e914536f37048f5008d..952c9a9f2db982b4aa919bb9ed61a4f8a63d05e1 100644 (file)
 
 #define CGROUP_CPU_QUOTA_PERIOD_USEC ((usec_t) 100 * USEC_PER_MSEC)
 
+/* Returns the log level to use when cgroup attribute writes fail. When an attribute is missing or we have access
+ * problems we downgrade to LOG_DEBUG. This is supposed to be nice to container managers and kernels which want to mask
+ * out specific attributes from us. */
+#define LOG_LEVEL_CGROUP_WRITE(r) (IN_SET(abs(r), ENOENT, EROFS, EACCES, EPERM) ? LOG_DEBUG : LOG_WARNING)
+
 bool manager_owns_root_cgroup(Manager *m) {
         assert(m);
 
@@ -1156,7 +1161,7 @@ static void cgroup_context_apply(
                                 r = 0;
 
                         if (r < 0)
-                                log_unit_full(u, IN_SET(r, -ENOENT, -EROFS, -EACCES) ? LOG_DEBUG : LOG_WARNING, r,
+                                log_unit_full(u, LOG_LEVEL_CGROUP_WRITE(r), r,
                                               "Failed to write to tasks limit sysctls: %m");
 
                 } else {