core: enable TasksMax= for all services by default, and set it to 512
authorLennart Poettering <lennart@poettering.net>
Fri, 13 Nov 2015 18:28:32 +0000 (19:28 +0100)
committerLennart Poettering <lennart@poettering.net>
Mon, 16 Nov 2015 10:57:48 +0000 (11:57 +0100)
Also, enable TasksAccounting= for all services by default, too.

See:

http://lists.freedesktop.org/archives/systemd-devel/2015-November/035006.html

man/systemd-system.conf.xml
src/core/main.c
src/core/manager.c
src/core/system.conf
src/test/test-cgroup-mask.c

index 0050f24..ead5295 100644 (file)
         <varname>MemoryAccounting=</varname> and
         <varname>TasksAccounting=</varname>. See
         <citerefentry><refentrytitle>systemd.resource-control</refentrytitle><manvolnum>5</manvolnum></citerefentry>
-        for details on the per-unit settings.</para></listitem>
+        for details on the per-unit
+        settings. <varname>DefaulTasksAccounting=</varname> defaults
+        to on, the other three settings to off.</para></listitem>
       </varlistentry>
 
       <varlistentry>
         <citerefentry><refentrytitle>systemd.resource-control</refentrytitle><manvolnum>5</manvolnum></citerefentry>
         for details. This setting applies to all unit types that
         support resource control settings, with the exception of slice
-        units.</para></listitem>
+        units. Defaults to 512.</para></listitem>
       </varlistentry>
 
       <varlistentry>
index f8e1d88..a09ce0f 100644 (file)
@@ -125,8 +125,8 @@ static FILE* arg_serialization = NULL;
 static bool arg_default_cpu_accounting = false;
 static bool arg_default_blockio_accounting = false;
 static bool arg_default_memory_accounting = false;
-static bool arg_default_tasks_accounting = false;
-static uint64_t arg_default_tasks_max = (uint64_t) -1;
+static bool arg_default_tasks_accounting = true;
+static uint64_t arg_default_tasks_max = UINT64_C(512);
 
 static void pager_open_if_enabled(void) {
 
index fd915d7..edff675 100644 (file)
@@ -577,7 +577,8 @@ int manager_new(ManagerRunningAs running_as, bool test_run, Manager **_m) {
         m->running_as = running_as;
         m->exit_code = _MANAGER_EXIT_CODE_INVALID;
         m->default_timer_accuracy_usec = USEC_PER_MINUTE;
-        m->default_tasks_max = (uint64_t) -1;
+        m->default_tasks_accounting = true;
+        m->default_tasks_max = UINT64_C(512);
 
         /* Prepare log fields we can use for structured logging */
         m->unit_log_field = unit_log_fields[running_as];
index 63bff08..e2ded27 100644 (file)
@@ -40,8 +40,8 @@
 #DefaultCPUAccounting=no
 #DefaultBlockIOAccounting=no
 #DefaultMemoryAccounting=no
-#DefaultTasksAccounting=no
-#DefaultTasksMax=
+#DefaultTasksAccounting=yes
+#DefaultTasksMax=512
 #DefaultLimitCPU=
 #DefaultLimitFSIZE=
 #DefaultLimitDATA=
index de6c421..85b0d60 100644 (file)
@@ -40,6 +40,16 @@ static int test_cgroup_mask(void) {
                 puts("manager_new: Permission denied. Skipping test.");
                 return EXIT_TEST_SKIP;
         }
+
+        /* Turn off all kinds of default accouning, so that we can
+         * verify the masks resulting of our configuration and nothing
+         * else. */
+        m->default_cpu_accounting =
+                m->default_memory_accounting =
+                m->default_blockio_accounting =
+                m->default_tasks_accounting = false;
+        m->default_tasks_max = (uint64_t) -1;
+
         assert_se(r >= 0);
         assert_se(manager_startup(m, serial, fdset) >= 0);