From 98d64ff5004b497a853e9058217c6eff46065fdb Mon Sep 17 00:00:00 2001 From: Yu Watanabe Date: Sun, 6 Apr 2025 09:44:41 +0900 Subject: [PATCH] core: remove deprecated CGroup v1 settings --- src/core/load-fragment-gperf.gperf.in | 18 +-- src/core/load-fragment.c | 204 -------------------------- src/core/load-fragment.h | 4 - src/core/main.c | 2 +- 4 files changed, 10 insertions(+), 218 deletions(-) diff --git a/src/core/load-fragment-gperf.gperf.in b/src/core/load-fragment-gperf.gperf.in index 6307dbe83f1..9b8a9eea19f 100644 --- a/src/core/load-fragment-gperf.gperf.in +++ b/src/core/load-fragment-gperf.gperf.in @@ -204,8 +204,8 @@ {{type}}.CPUAccounting, config_parse_bool, 0, offsetof({{type}}, cgroup_context.cpu_accounting) {{type}}.CPUWeight, config_parse_cg_cpu_weight, 0, offsetof({{type}}, cgroup_context.cpu_weight) {{type}}.StartupCPUWeight, config_parse_cg_cpu_weight, 0, offsetof({{type}}, cgroup_context.startup_cpu_weight) -{{type}}.CPUShares, config_parse_cpu_shares, 0, offsetof({{type}}, cgroup_context.cpu_shares) -{{type}}.StartupCPUShares, config_parse_cpu_shares, 0, offsetof({{type}}, cgroup_context.startup_cpu_shares) +{{type}}.CPUShares, config_parse_warn_compat, DISABLED_LEGACY, 0 +{{type}}.StartupCPUShares, config_parse_warn_compat, DISABLED_LEGACY, 0 {{type}}.CPUQuota, config_parse_cpu_quota, 0, offsetof({{type}}, cgroup_context) {{type}}.CPUQuotaPeriodSec, config_parse_sec_def_infinity, 0, offsetof({{type}}, cgroup_context.cpu_quota_period_usec) {{type}}.MemoryAccounting, config_parse_bool, 0, offsetof({{type}}, cgroup_context.memory_accounting) @@ -224,7 +224,7 @@ {{type}}.MemoryZSwapMax, config_parse_memory_limit, 0, offsetof({{type}}, cgroup_context) {{type}}.StartupMemoryZSwapMax, config_parse_memory_limit, 0, offsetof({{type}}, cgroup_context) {{type}}.MemoryZSwapWriteback, config_parse_bool, 0, offsetof({{type}}, cgroup_context.memory_zswap_writeback) -{{type}}.MemoryLimit, config_parse_memory_limit, 0, offsetof({{type}}, cgroup_context) +{{type}}.MemoryLimit, config_parse_warn_compat, DISABLED_LEGACY, 0 {{type}}.DeviceAllow, config_parse_device_allow, 0, offsetof({{type}}, cgroup_context) {{type}}.DevicePolicy, config_parse_device_policy, 0, offsetof({{type}}, cgroup_context.device_policy) {{type}}.IOAccounting, config_parse_bool, 0, offsetof({{type}}, cgroup_context.io_accounting) @@ -236,12 +236,12 @@ {{type}}.IOReadIOPSMax, config_parse_io_limit, 0, offsetof({{type}}, cgroup_context) {{type}}.IOWriteIOPSMax, config_parse_io_limit, 0, offsetof({{type}}, cgroup_context) {{type}}.IODeviceLatencyTargetSec, config_parse_io_device_latency, 0, offsetof({{type}}, cgroup_context) -{{type}}.BlockIOAccounting, config_parse_bool, 0, offsetof({{type}}, cgroup_context.blockio_accounting) -{{type}}.BlockIOWeight, config_parse_blockio_weight, 0, offsetof({{type}}, cgroup_context.blockio_weight) -{{type}}.StartupBlockIOWeight, config_parse_blockio_weight, 0, offsetof({{type}}, cgroup_context.startup_blockio_weight) -{{type}}.BlockIODeviceWeight, config_parse_blockio_device_weight, 0, offsetof({{type}}, cgroup_context) -{{type}}.BlockIOReadBandwidth, config_parse_blockio_bandwidth, 0, offsetof({{type}}, cgroup_context) -{{type}}.BlockIOWriteBandwidth, config_parse_blockio_bandwidth, 0, offsetof({{type}}, cgroup_context) +{{type}}.BlockIOAccounting, config_parse_warn_compat, DISABLED_LEGACY, 0 +{{type}}.BlockIOWeight, config_parse_warn_compat, DISABLED_LEGACY, 0 +{{type}}.StartupBlockIOWeight, config_parse_warn_compat, DISABLED_LEGACY, 0 +{{type}}.BlockIODeviceWeight, config_parse_warn_compat, DISABLED_LEGACY, 0 +{{type}}.BlockIOReadBandwidth, config_parse_warn_compat, DISABLED_LEGACY, 0 +{{type}}.BlockIOWriteBandwidth, config_parse_warn_compat, DISABLED_LEGACY, 0 {{type}}.TasksAccounting, config_parse_bool, 0, offsetof({{type}}, cgroup_context.tasks_accounting) {{type}}.TasksMax, config_parse_tasks_max, 0, offsetof({{type}}, cgroup_context.tasks_max) {{type}}.Delegate, config_parse_delegate, 0, offsetof({{type}}, cgroup_context) diff --git a/src/core/load-fragment.c b/src/core/load-fragment.c index e09415e1d32..dbe556eaf26 100644 --- a/src/core/load-fragment.c +++ b/src/core/load-fragment.c @@ -153,38 +153,13 @@ DEFINE_CONFIG_PARSE_ENUM(config_parse_oom_policy, oom_policy, OOMPolicy); DEFINE_CONFIG_PARSE_ENUM(config_parse_managed_oom_preference, managed_oom_preference, ManagedOOMPreference); DEFINE_CONFIG_PARSE_ENUM(config_parse_memory_pressure_watch, cgroup_pressure_watch, CGroupPressureWatch); DEFINE_CONFIG_PARSE_ENUM_WITH_DEFAULT(config_parse_ip_tos, ip_tos, int, -1); -DEFINE_CONFIG_PARSE_PTR(config_parse_blockio_weight, cg_blkio_weight_parse, uint64_t); DEFINE_CONFIG_PARSE_PTR(config_parse_cg_weight, cg_weight_parse, uint64_t); DEFINE_CONFIG_PARSE_PTR(config_parse_cg_cpu_weight, cg_cpu_weight_parse, uint64_t); -static DEFINE_CONFIG_PARSE_PTR(config_parse_cpu_shares_internal, cg_cpu_shares_parse, uint64_t); DEFINE_CONFIG_PARSE_PTR(config_parse_exec_mount_propagation_flag, mount_propagation_flag_from_string, unsigned long); DEFINE_CONFIG_PARSE_ENUM_WITH_DEFAULT(config_parse_numa_policy, mpol, int, -1); DEFINE_CONFIG_PARSE_ENUM(config_parse_status_unit_format, status_unit_format, StatusUnitFormat); DEFINE_CONFIG_PARSE_ENUM_FULL(config_parse_socket_timestamping, socket_timestamping_from_string_harder, SocketTimestamping); -int config_parse_cpu_shares( - const char *unit, - const char *filename, - unsigned line, - const char *section, - unsigned section_line, - const char *lvalue, - int ltype, - const char *rvalue, - void *data, - void *userdata) { - - assert(filename); - assert(lvalue); - assert(rvalue); - - log_syntax(unit, LOG_WARNING, filename, line, 0, - "Unit uses %s=; please use CPUWeight= instead. Support for %s= will be removed soon.", - lvalue, lvalue); - - return config_parse_cpu_shares_internal(unit, filename, line, section, section_line, lvalue, ltype, rvalue, data, userdata); -} - bool contains_instance_specifier_superset(const char *s) { const char *p, *q; bool percent = false; @@ -3899,10 +3874,6 @@ int config_parse_memory_limit( else if (streq(lvalue, "StartupMemoryZSwapMax")) { c->startup_memory_zswap_max = bytes; c->startup_memory_zswap_max_set = true; - } else if (streq(lvalue, "MemoryLimit")) { - log_syntax(unit, LOG_WARNING, filename, line, 0, - "Unit uses MemoryLimit=; please use MemoryMax= instead. Support for MemoryLimit= will be removed soon."); - c->memory_limit = bytes; } else return -EINVAL; @@ -4477,177 +4448,6 @@ int config_parse_io_limit( return 0; } -int config_parse_blockio_device_weight( - const char *unit, - const char *filename, - unsigned line, - const char *section, - unsigned section_line, - const char *lvalue, - int ltype, - const char *rvalue, - void *data, - void *userdata) { - - _cleanup_free_ char *path = NULL, *resolved = NULL; - CGroupBlockIODeviceWeight *w; - CGroupContext *c = data; - const char *p = ASSERT_PTR(rvalue); - uint64_t u; - int r; - - assert(filename); - assert(lvalue); - - log_syntax(unit, LOG_WARNING, filename, line, 0, - "Unit uses %s=; please use IO*= settings instead. Support for %s= will be removed soon.", - lvalue, lvalue); - - if (isempty(rvalue)) { - while (c->blockio_device_weights) - cgroup_context_free_blockio_device_weight(c, c->blockio_device_weights); - - return 0; - } - - r = extract_first_word(&p, &path, NULL, EXTRACT_UNQUOTE); - if (r == -ENOMEM) - return log_oom(); - if (r < 0) { - log_syntax(unit, LOG_WARNING, filename, line, r, - "Failed to extract device node and weight from '%s', ignoring.", rvalue); - return 0; - } - if (r == 0 || isempty(p)) { - log_syntax(unit, LOG_WARNING, filename, line, 0, - "Invalid device node or weight specified in '%s', ignoring.", rvalue); - return 0; - } - - r = unit_path_printf(userdata, path, &resolved); - if (r < 0) { - log_syntax(unit, LOG_WARNING, filename, line, r, - "Failed to resolve unit specifiers in '%s', ignoring: %m", path); - return 0; - } - - r = path_simplify_and_warn(resolved, 0, unit, filename, line, lvalue); - if (r < 0) - return 0; - - r = cg_blkio_weight_parse(p, &u); - if (r < 0) { - log_syntax(unit, LOG_WARNING, filename, line, r, "Invalid block IO weight '%s', ignoring: %m", p); - return 0; - } - - assert(u != CGROUP_BLKIO_WEIGHT_INVALID); - - w = new0(CGroupBlockIODeviceWeight, 1); - if (!w) - return log_oom(); - - w->path = TAKE_PTR(resolved); - w->weight = u; - - LIST_APPEND(device_weights, c->blockio_device_weights, w); - return 0; -} - -int config_parse_blockio_bandwidth( - const char *unit, - const char *filename, - unsigned line, - const char *section, - unsigned section_line, - const char *lvalue, - int ltype, - const char *rvalue, - void *data, - void *userdata) { - - _cleanup_free_ char *path = NULL, *resolved = NULL; - CGroupBlockIODeviceBandwidth *b = NULL; - CGroupContext *c = data; - const char *p = ASSERT_PTR(rvalue); - uint64_t bytes; - bool read; - int r; - - assert(filename); - assert(lvalue); - - log_syntax(unit, LOG_WARNING, filename, line, 0, - "Unit uses %s=; please use IO*= settings instead. Support for %s= will be removed soon.", - lvalue, lvalue); - - read = streq("BlockIOReadBandwidth", lvalue); - - if (isempty(rvalue)) { - LIST_FOREACH(device_bandwidths, t, c->blockio_device_bandwidths) { - t->rbps = CGROUP_LIMIT_MAX; - t->wbps = CGROUP_LIMIT_MAX; - } - return 0; - } - - r = extract_first_word(&p, &path, NULL, EXTRACT_UNQUOTE); - if (r == -ENOMEM) - return log_oom(); - if (r < 0) { - log_syntax(unit, LOG_WARNING, filename, line, r, - "Failed to extract device node and bandwidth from '%s', ignoring.", rvalue); - return 0; - } - if (r == 0 || isempty(p)) { - log_syntax(unit, LOG_WARNING, filename, line, 0, - "Invalid device node or bandwidth specified in '%s', ignoring.", rvalue); - return 0; - } - - r = unit_path_printf(userdata, path, &resolved); - if (r < 0) { - log_syntax(unit, LOG_WARNING, filename, line, r, - "Failed to resolve unit specifiers in '%s', ignoring: %m", path); - return 0; - } - - r = path_simplify_and_warn(resolved, 0, unit, filename, line, lvalue); - if (r < 0) - return 0; - - r = parse_size(p, 1000, &bytes); - if (r < 0 || bytes <= 0) { - log_syntax(unit, LOG_WARNING, filename, line, r, "Invalid Block IO Bandwidth '%s', ignoring.", p); - return 0; - } - - LIST_FOREACH(device_bandwidths, t, c->blockio_device_bandwidths) - if (path_equal(resolved, t->path)) { - b = t; - break; - } - - if (!b) { - b = new0(CGroupBlockIODeviceBandwidth, 1); - if (!b) - return log_oom(); - - b->path = TAKE_PTR(resolved); - b->rbps = CGROUP_LIMIT_MAX; - b->wbps = CGROUP_LIMIT_MAX; - - LIST_APPEND(device_bandwidths, c->blockio_device_bandwidths, b); - } - - if (read) - b->rbps = bytes; - else - b->wbps = bytes; - - return 0; -} - int config_parse_job_mode_isolate( const char *unit, const char *filename, @@ -6372,7 +6172,6 @@ void unit_dump_config_items(FILE *f) { #endif { config_parse_namespace_flags, "NAMESPACES" }, { config_parse_restrict_filesystems, "FILESYSTEMS" }, - { config_parse_cpu_shares, "SHARES" }, { config_parse_cg_weight, "WEIGHT" }, { config_parse_cg_cpu_weight, "CPUWEIGHT" }, { config_parse_memory_limit, "LIMIT" }, @@ -6381,9 +6180,6 @@ void unit_dump_config_items(FILE *f) { { config_parse_io_limit, "LIMIT" }, { config_parse_io_device_weight, "DEVICEWEIGHT" }, { config_parse_io_device_latency, "DEVICELATENCY" }, - { config_parse_blockio_bandwidth, "BANDWIDTH" }, - { config_parse_blockio_weight, "WEIGHT" }, - { config_parse_blockio_device_weight, "DEVICEWEIGHT" }, { config_parse_long, "LONG" }, { config_parse_socket_service, "SERVICE" }, #if HAVE_SELINUX diff --git a/src/core/load-fragment.h b/src/core/load-fragment.h index 7b758df2e68..c789af578e2 100644 --- a/src/core/load-fragment.h +++ b/src/core/load-fragment.h @@ -81,7 +81,6 @@ CONFIG_PARSER_PROTOTYPE(config_parse_unset_environ); CONFIG_PARSER_PROTOTYPE(config_parse_unit_slice); CONFIG_PARSER_PROTOTYPE(config_parse_cg_weight); CONFIG_PARSER_PROTOTYPE(config_parse_cg_cpu_weight); -CONFIG_PARSER_PROTOTYPE(config_parse_cpu_shares); CONFIG_PARSER_PROTOTYPE(config_parse_memory_limit); CONFIG_PARSER_PROTOTYPE(config_parse_tasks_max); CONFIG_PARSER_PROTOTYPE(config_parse_delegate); @@ -95,9 +94,6 @@ CONFIG_PARSER_PROTOTYPE(config_parse_device_allow); CONFIG_PARSER_PROTOTYPE(config_parse_io_device_latency); CONFIG_PARSER_PROTOTYPE(config_parse_io_device_weight); CONFIG_PARSER_PROTOTYPE(config_parse_io_limit); -CONFIG_PARSER_PROTOTYPE(config_parse_blockio_weight); -CONFIG_PARSER_PROTOTYPE(config_parse_blockio_device_weight); -CONFIG_PARSER_PROTOTYPE(config_parse_blockio_bandwidth); CONFIG_PARSER_PROTOTYPE(config_parse_job_mode); CONFIG_PARSER_PROTOTYPE(config_parse_job_mode_isolate); CONFIG_PARSER_PROTOTYPE(config_parse_exec_selinux_context); diff --git a/src/core/main.c b/src/core/main.c index 3e7894ee5e5..2d7f574fec9 100644 --- a/src/core/main.c +++ b/src/core/main.c @@ -794,7 +794,7 @@ static int parse_config_file(void) { { "Manager", "DefaultCPUAccounting", config_parse_bool, 0, &arg_defaults.cpu_accounting }, { "Manager", "DefaultIOAccounting", config_parse_bool, 0, &arg_defaults.io_accounting }, { "Manager", "DefaultIPAccounting", config_parse_bool, 0, &arg_defaults.ip_accounting }, - { "Manager", "DefaultBlockIOAccounting", config_parse_bool, 0, &arg_defaults.blockio_accounting }, + { "Manager", "DefaultBlockIOAccounting", config_parse_warn_compat, DISABLED_LEGACY, NULL }, { "Manager", "DefaultMemoryAccounting", config_parse_bool, 0, &arg_defaults.memory_accounting }, { "Manager", "DefaultTasksAccounting", config_parse_bool, 0, &arg_defaults.tasks_accounting }, { "Manager", "DefaultTasksMax", config_parse_tasks_max, 0, &arg_defaults.tasks_max }, -- 2.47.3