diff options
author | Lennart Poettering <lennart@poettering.net> | 2021-02-17 17:51:27 +0100 |
---|---|---|
committer | Lennart Poettering <lennart@poettering.net> | 2021-02-18 22:39:37 +0100 |
commit | d9d3f05def0057cc064a05f8cbfb5f398779cd8c (patch) | |
tree | c0f9a610b20970ccd122bf1d373334792d0a1bd4 /src/core/dbus-cgroup.c | |
parent | 1ead0b2a7973782f4bacaab2d9deed94ac69d867 (diff) | |
download | systemd-d9d3f05def0057cc064a05f8cbfb5f398779cd8c.tar.gz |
core: use our usual UINT32_MAX scaling for OOMD limits
So far OOMD limits used permyriads, as an upgrade from the original
percent.
The rest of our codebase typically scales stuff relative to UINT32_MAX.
Let's clean this up, an make sure this happens here too. This is
particularly relevant, as this is exposed in unit files and API, and
before we mark this stable we should get the APIs right.
Diffstat (limited to 'src/core/dbus-cgroup.c')
-rw-r--r-- | src/core/dbus-cgroup.c | 13 |
1 files changed, 6 insertions, 7 deletions
diff --git a/src/core/dbus-cgroup.c b/src/core/dbus-cgroup.c index 5bf9d7f4a8..04d2ba34f3 100644 --- a/src/core/dbus-cgroup.c +++ b/src/core/dbus-cgroup.c @@ -396,7 +396,7 @@ const sd_bus_vtable bus_cgroup_vtable[] = { SD_BUS_PROPERTY("DisableControllers", "as", property_get_cgroup_mask, offsetof(CGroupContext, disable_controllers), 0), SD_BUS_PROPERTY("ManagedOOMSwap", "s", property_get_managed_oom_mode, offsetof(CGroupContext, moom_swap), 0), SD_BUS_PROPERTY("ManagedOOMMemoryPressure", "s", property_get_managed_oom_mode, offsetof(CGroupContext, moom_mem_pressure), 0), - SD_BUS_PROPERTY("ManagedOOMMemoryPressureLimitPermyriad", "u", NULL, offsetof(CGroupContext, moom_mem_pressure_limit_permyriad), 0), + SD_BUS_PROPERTY("ManagedOOMMemoryPressureLimit", "u", NULL, offsetof(CGroupContext, moom_mem_pressure_limit), 0), SD_BUS_PROPERTY("ManagedOOMPreference", "s", property_get_managed_oom_preference, offsetof(CGroupContext, moom_preference), 0), SD_BUS_VTABLE_END }; @@ -1699,7 +1699,7 @@ int bus_cgroup_set_property( return 1; } - if (streq(name, "ManagedOOMMemoryPressureLimitPermyriad")) { + if (streq(name, "ManagedOOMMemoryPressureLimit")) { uint32_t v; if (!UNIT_VTABLE(u)->can_set_managed_oom) @@ -1709,12 +1709,11 @@ int bus_cgroup_set_property( if (r < 0) return r; - if (v > 10000) - return -ERANGE; - if (!UNIT_WRITE_FLAGS_NOOP(flags)) { - c->moom_mem_pressure_limit_permyriad = v; - unit_write_settingf(u, flags, name, "ManagedOOMMemoryPressureLimit=%" PRIu32 ".%02" PRIu32 "%%", v / 100, v % 100); + c->moom_mem_pressure_limit = v; + unit_write_settingf(u, flags, name, + "ManagedOOMMemoryPressureLimit=" PERMYRIAD_AS_PERCENT_FORMAT_STR, + PERMYRIAD_AS_PERCENT_FORMAT_VAL(UINT32_SCALE_TO_PERMYRIAD(v))); } if (c->moom_mem_pressure == MANAGED_OOM_KILL) |