]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
meson: add -Dmemory-accounting-default=true|false 8150/head
authorZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Thu, 15 Feb 2018 10:43:08 +0000 (11:43 +0100)
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Thu, 15 Feb 2018 11:02:41 +0000 (12:02 +0100)
This makes it easy to set the default for distributions and users which want to
default to off because they primarily use older kernels.

NEWS
man/custom-entities.ent.in
man/systemd-system.conf.xml
meson.build
meson_options.txt
src/core/main.c
src/core/manager.c
src/core/meson.build
src/core/system.conf.in [moved from src/core/system.conf with 96% similarity]

diff --git a/NEWS b/NEWS
index b799c19f3bf9f10f0b4473ccecc64fb6394f8370..22372a82960ff6834c57717368b4b60c13403da2 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -6,15 +6,15 @@ CHANGES WITH 238 in spe:
           discussions with the upstream control group maintainers we learnt
           that the negative impact of cgroup memory accounting on current
           kernels is finally relatively minimal, so that it should be safe to
-          enable this by default without affecting system performance too
-          much. Besides memory accounting only tasks accounting is turned on by
-          default, all other forms of resource accounting (CPU, IO, IP) remain
-          off for now, because it's not clear yet that their impact is small
-          enough to move from opt-in to opt-out for them, too. We recommend
-          downstreams to leave memory accounting on by default, however in some
-          situations it might be wise to revert this change of defaults, in
-          particular on very resource constrained systems or when support for
-          old kernels is a necessity.
+          enable this by default without affecting system performance. Besides
+          memory accounting only task accounting is turned on by default, all
+          other forms of resource accounting (CPU, IO, IP) remain off for now,
+          because it's not clear yet that their impact is small enough to move
+          from opt-in to opt-out. We recommend downstreams to leave memory
+          accounting on by default if kernel 4.14 or higher is are primarily
+          used. On very resource constrained systems or when support for old
+          kernels is a necessity, -Dmemory-accounting-default=false can be used
+          to revert this change.
 
 CHANGES WITH 237:
 
index 9ea92384aa7dd1df9df569862daa3073f52cc797..a1dbf7133f2ff63a12a00d98e46111b1ad818cfe 100644 (file)
@@ -6,3 +6,4 @@
 <!ENTITY systemenvgeneratordir @SYSTEM_ENV_GENERATOR_PATH@>
 <!ENTITY userenvgeneratordir @USER_ENV_GENERATOR_PATH@>
 <!ENTITY CERTIFICATE_ROOT @CERTIFICATE_ROOT@>
+<!ENTITY MEMORY_ACCOUNTING_DEFAULT @MEMORY_ACCOUNTING_DEFAULT_ON_OFF@>
index d875a3c46fc42c4907cc6cb9d439cc7a7d9cb324..fca9690092cdfc79c8c7dabece6c13646280aa92 100644 (file)
@@ -1,6 +1,9 @@
 <?xml version='1.0'?> <!--*- Mode: nxml; nxml-child-indent: 2; indent-tabs-mode: nil -*-->
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
-  "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
+  "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd" [
+<!ENTITY % entities SYSTEM "custom-entities.ent" >
+%entities;
+]>
 
 <!--
   SPDX-License-Identifier: LGPL-2.1+
         <varname>CPUAccounting=</varname>, <varname>BlockIOAccounting=</varname>, <varname>MemoryAccounting=</varname>,
         <varname>TasksAccounting=</varname> and <varname>IPAccounting=</varname>. See
         <citerefentry><refentrytitle>systemd.resource-control</refentrytitle><manvolnum>5</manvolnum></citerefentry>
-        for details on the per-unit settings. <varname>DefaultTasksAccounting=</varname> and
-        <varname>DefaultMemoryAccounting=</varname> default to on, the other three settings to off.</para></listitem>
+        for details on the per-unit settings. <varname>DefaultTasksAccounting=</varname> defaults to on,
+        <varname>DefaultMemoryAccounting=</varname> to &MEMORY_ACCOUNTING_DEFAULT;,
+        the other three settings to off.</para></listitem>
       </varlistentry>
 
       <varlistentry>
index e497924cb80a4922b12a94a48fa5e202aba8e3aa..b4d5964bf127889678e93a8c7973cdf909c96eee 100644 (file)
@@ -172,6 +172,8 @@ if pamconfdir == ''
         pamconfdir = join_paths(sysconfdir, 'pam.d')
 endif
 
+memory_accounting_default = get_option('memory-accounting-default')
+
 conf.set_quoted('PKGSYSCONFDIR',                              pkgsysconfdir)
 conf.set_quoted('SYSTEM_CONFIG_UNIT_PATH',                    join_paths(pkgsysconfdir, 'system'))
 conf.set_quoted('SYSTEM_DATA_UNIT_PATH',                      systemunitdir)
@@ -217,6 +219,8 @@ conf.set_quoted('SYSTEMD_EXPORT_PATH',                        join_paths(rootlib
 conf.set_quoted('VENDOR_KEYRING_PATH',                        join_paths(rootlibexecdir, 'import-pubring.gpg'))
 conf.set_quoted('USER_KEYRING_PATH',                          join_paths(pkgsysconfdir, 'import-pubring.gpg'))
 conf.set_quoted('DOCUMENT_ROOT',                              join_paths(pkgdatadir, 'gatewayd'))
+conf.set('MEMORY_ACCOUNTING_DEFAULT',                         memory_accounting_default ? 'true' : 'false')
+conf.set_quoted('MEMORY_ACCOUNTING_DEFAULT_ON_OFF',           memory_accounting_default ? 'on' : 'off')
 
 conf.set_quoted('ABS_BUILD_DIR',                              meson.build_root())
 conf.set_quoted('ABS_SRC_DIR',                                meson.source_root())
@@ -257,6 +261,7 @@ substs.set('SYSTEM_SYSVINIT_PATH',                            sysvinit_path)
 substs.set('SYSTEM_SYSVRCND_PATH',                            sysvrcnd_path)
 substs.set('RC_LOCAL_SCRIPT_PATH_START',                      get_option('rc-local'))
 substs.set('RC_LOCAL_SCRIPT_PATH_STOP',                       get_option('halt-local'))
+substs.set('MEMORY_ACCOUNTING_DEFAULT',                       memory_accounting_default ? 'yes' : 'no')
 
 #####################################################################
 
index 48ee3f52a4ca687cca089bec68e313d7b06b0af1..dca9dfc16cad388091c839077271808434a428c4 100644 (file)
@@ -53,6 +53,8 @@ option('debug-tty', type : 'string', value : '/dev/tty9',
        description : 'specify the tty device for debug shell')
 option('debug', type : 'string',
        description : 'enable extra debugging (hashmap,mmap-cache)')
+option('memory-accounting-default', type : 'boolean',
+       description : 'enable MemoryAccounting= by default')
 
 option('utmp', type : 'boolean',
        description : 'support for utmp/wtmp log handling')
index f518656af33eab618175c3fb6ea87c0ed67cfabc..125c0f4ac6e2b0c769183ae27aeb57d3056a8f23 100644 (file)
@@ -135,7 +135,7 @@ static bool arg_default_cpu_accounting = false;
 static bool arg_default_io_accounting = false;
 static bool arg_default_ip_accounting = false;
 static bool arg_default_blockio_accounting = false;
-static bool arg_default_memory_accounting = true;
+static bool arg_default_memory_accounting = MEMORY_ACCOUNTING_DEFAULT;
 static bool arg_default_tasks_accounting = true;
 static uint64_t arg_default_tasks_max = UINT64_MAX;
 static sd_id128_t arg_machine_id = {};
index 27b041c6d27f58c41d49aeda9f2219d817ef152a..d588341717e633f3604968ed522ebc1255344b2b 100644 (file)
@@ -673,7 +673,7 @@ int manager_new(UnitFileScope scope, unsigned test_run_flags, Manager **_m) {
         m->unit_file_scope = scope;
         m->exit_code = _MANAGER_EXIT_CODE_INVALID;
         m->default_timer_accuracy_usec = USEC_PER_MINUTE;
-        m->default_memory_accounting = true;
+        m->default_memory_accounting = MEMORY_ACCOUNTING_DEFAULT;
         m->default_tasks_accounting = true;
         m->default_tasks_max = UINT64_MAX;
         m->default_timeout_start_usec = DEFAULT_TIMEOUT_USEC;
index bc034082a59c5d79fc17e9b05ab4f1d8b93e6549..a89a12232dd2f6aad0866e1008878b71a7b54eeb 100644 (file)
@@ -186,7 +186,8 @@ systemd_shutdown_sources = files('''
 
 in_files = [['macros.systemd',   rpmmacrosdir],
             ['triggers.systemd', ''],
-            ['systemd.pc',       pkgconfigdatadir]]
+            ['systemd.pc',       pkgconfigdatadir],
+            ['system.conf',      pkgsysconfdir]]
 
 foreach item : in_files
         file = item[0]
@@ -225,8 +226,7 @@ i18n.merge_file(
         install : install_polkit,
         install_dir : polkitpolicydir)
 
-install_data('system.conf',
-             'user.conf',
+install_data('user.conf',
              install_dir : pkgsysconfdir)
 
 meson.add_install_script('sh', '-c', mkdir_p.format(systemshutdowndir))
similarity index 96%
rename from src/core/system.conf
rename to src/core/system.conf.in
index 51a6e83ecf16b9ac61af7b0c66ba6319528e8a6f..08cbe529ba08d950d2473a0739b50926ef478dd4 100644 (file)
@@ -42,7 +42,7 @@
 #DefaultIOAccounting=no
 #DefaultIPAccounting=no
 #DefaultBlockIOAccounting=no
-#DefaultMemoryAccounting=yes
+#DefaultMemoryAccounting=@MEMORY_ACCOUNTING_DEFAULT@
 #DefaultTasksAccounting=yes
 #DefaultTasksMax=15%
 #DefaultLimitCPU=