From: Yu Watanabe Date: Sun, 6 Apr 2025 01:22:12 +0000 (+0900) Subject: core: deprecate CGroup v1 DBus properties X-Git-Tag: v258-rc1~812^2~13 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=db6986e02c811950f746f0d7d7dcdff6219594f9;p=thirdparty%2Fsystemd.git core: deprecate CGroup v1 DBus properties --- diff --git a/man/org.freedesktop.systemd1.xml b/man/org.freedesktop.systemd1.xml index a0955df9268..211cc8c2783 100644 --- a/man/org.freedesktop.systemd1.xml +++ b/man/org.freedesktop.systemd1.xml @@ -477,8 +477,6 @@ node /org/freedesktop/systemd1 { @org.freedesktop.DBus.Property.EmitsChangedSignal("const") readonly b DefaultCPUAccounting = ...; @org.freedesktop.DBus.Property.EmitsChangedSignal("const") - readonly b DefaultBlockIOAccounting = ...; - @org.freedesktop.DBus.Property.EmitsChangedSignal("const") readonly b DefaultIOAccounting = ...; @org.freedesktop.DBus.Property.EmitsChangedSignal("const") readonly b DefaultIPAccounting = ...; @@ -719,8 +717,6 @@ node /org/freedesktop/systemd1 { - - @@ -1167,8 +1163,6 @@ node /org/freedesktop/systemd1 { - - @@ -2906,10 +2900,6 @@ node /org/freedesktop/systemd1/unit/avahi_2ddaemon_2eservice { @org.freedesktop.DBus.Property.EmitsChangedSignal("false") readonly t StartupCPUWeight = ...; @org.freedesktop.DBus.Property.EmitsChangedSignal("false") - readonly t CPUShares = ...; - @org.freedesktop.DBus.Property.EmitsChangedSignal("false") - readonly t StartupCPUShares = ...; - @org.freedesktop.DBus.Property.EmitsChangedSignal("false") readonly t CPUQuotaPerSecUSec = ...; @org.freedesktop.DBus.Property.EmitsChangedSignal("false") readonly t CPUQuotaPeriodUSec = ...; @@ -2940,18 +2930,6 @@ node /org/freedesktop/systemd1/unit/avahi_2ddaemon_2eservice { @org.freedesktop.DBus.Property.EmitsChangedSignal("false") readonly a(st) IODeviceLatencyTargetUSec = [...]; @org.freedesktop.DBus.Property.EmitsChangedSignal("false") - readonly b BlockIOAccounting = ...; - @org.freedesktop.DBus.Property.EmitsChangedSignal("false") - readonly t BlockIOWeight = ...; - @org.freedesktop.DBus.Property.EmitsChangedSignal("false") - readonly t StartupBlockIOWeight = ...; - @org.freedesktop.DBus.Property.EmitsChangedSignal("false") - readonly a(st) BlockIODeviceWeight = [...]; - @org.freedesktop.DBus.Property.EmitsChangedSignal("false") - readonly a(st) BlockIOReadBandwidth = [...]; - @org.freedesktop.DBus.Property.EmitsChangedSignal("false") - readonly a(st) BlockIOWriteBandwidth = [...]; - @org.freedesktop.DBus.Property.EmitsChangedSignal("false") readonly b MemoryAccounting = ...; @org.freedesktop.DBus.Property.EmitsChangedSignal("false") readonly t DefaultMemoryLow = ...; @@ -2984,8 +2962,6 @@ node /org/freedesktop/systemd1/unit/avahi_2ddaemon_2eservice { @org.freedesktop.DBus.Property.EmitsChangedSignal("false") readonly b MemoryZSwapWriteback = ...; @org.freedesktop.DBus.Property.EmitsChangedSignal("false") - readonly t MemoryLimit = ...; - @org.freedesktop.DBus.Property.EmitsChangedSignal("false") readonly s DevicePolicy = '...'; @org.freedesktop.DBus.Property.EmitsChangedSignal("false") readonly a(ss) DeviceAllow = [...]; @@ -3565,10 +3541,6 @@ node /org/freedesktop/systemd1/unit/avahi_2ddaemon_2eservice { - - - - @@ -3599,18 +3571,6 @@ node /org/freedesktop/systemd1/unit/avahi_2ddaemon_2eservice { - - - - - - - - - - - - @@ -3643,8 +3603,6 @@ node /org/freedesktop/systemd1/unit/avahi_2ddaemon_2eservice { - - @@ -4237,10 +4195,6 @@ node /org/freedesktop/systemd1/unit/avahi_2ddaemon_2eservice { - - - - @@ -4271,18 +4225,6 @@ node /org/freedesktop/systemd1/unit/avahi_2ddaemon_2eservice { - - - - - - - - - - - - @@ -4315,8 +4257,6 @@ node /org/freedesktop/systemd1/unit/avahi_2ddaemon_2eservice { - - @@ -5113,10 +5053,6 @@ node /org/freedesktop/systemd1/unit/avahi_2ddaemon_2esocket { @org.freedesktop.DBus.Property.EmitsChangedSignal("false") readonly t StartupCPUWeight = ...; @org.freedesktop.DBus.Property.EmitsChangedSignal("false") - readonly t CPUShares = ...; - @org.freedesktop.DBus.Property.EmitsChangedSignal("false") - readonly t StartupCPUShares = ...; - @org.freedesktop.DBus.Property.EmitsChangedSignal("false") readonly t CPUQuotaPerSecUSec = ...; @org.freedesktop.DBus.Property.EmitsChangedSignal("false") readonly t CPUQuotaPeriodUSec = ...; @@ -5147,18 +5083,6 @@ node /org/freedesktop/systemd1/unit/avahi_2ddaemon_2esocket { @org.freedesktop.DBus.Property.EmitsChangedSignal("false") readonly a(st) IODeviceLatencyTargetUSec = [...]; @org.freedesktop.DBus.Property.EmitsChangedSignal("false") - readonly b BlockIOAccounting = ...; - @org.freedesktop.DBus.Property.EmitsChangedSignal("false") - readonly t BlockIOWeight = ...; - @org.freedesktop.DBus.Property.EmitsChangedSignal("false") - readonly t StartupBlockIOWeight = ...; - @org.freedesktop.DBus.Property.EmitsChangedSignal("false") - readonly a(st) BlockIODeviceWeight = [...]; - @org.freedesktop.DBus.Property.EmitsChangedSignal("false") - readonly a(st) BlockIOReadBandwidth = [...]; - @org.freedesktop.DBus.Property.EmitsChangedSignal("false") - readonly a(st) BlockIOWriteBandwidth = [...]; - @org.freedesktop.DBus.Property.EmitsChangedSignal("false") readonly b MemoryAccounting = ...; @org.freedesktop.DBus.Property.EmitsChangedSignal("false") readonly t DefaultMemoryLow = ...; @@ -5191,8 +5115,6 @@ node /org/freedesktop/systemd1/unit/avahi_2ddaemon_2esocket { @org.freedesktop.DBus.Property.EmitsChangedSignal("false") readonly b MemoryZSwapWriteback = ...; @org.freedesktop.DBus.Property.EmitsChangedSignal("false") - readonly t MemoryLimit = ...; - @org.freedesktop.DBus.Property.EmitsChangedSignal("false") readonly s DevicePolicy = '...'; @org.freedesktop.DBus.Property.EmitsChangedSignal("false") readonly a(ss) DeviceAllow = [...]; @@ -5784,10 +5706,6 @@ node /org/freedesktop/systemd1/unit/avahi_2ddaemon_2esocket { - - - - @@ -5818,18 +5736,6 @@ node /org/freedesktop/systemd1/unit/avahi_2ddaemon_2esocket { - - - - - - - - - - - - @@ -5862,8 +5768,6 @@ node /org/freedesktop/systemd1/unit/avahi_2ddaemon_2esocket { - - @@ -6428,10 +6332,6 @@ node /org/freedesktop/systemd1/unit/avahi_2ddaemon_2esocket { - - - - @@ -6462,18 +6362,6 @@ node /org/freedesktop/systemd1/unit/avahi_2ddaemon_2esocket { - - - - - - - - - - - - @@ -6506,8 +6394,6 @@ node /org/freedesktop/systemd1/unit/avahi_2ddaemon_2esocket { - - @@ -7136,10 +7022,6 @@ node /org/freedesktop/systemd1/unit/home_2emount { @org.freedesktop.DBus.Property.EmitsChangedSignal("false") readonly t StartupCPUWeight = ...; @org.freedesktop.DBus.Property.EmitsChangedSignal("false") - readonly t CPUShares = ...; - @org.freedesktop.DBus.Property.EmitsChangedSignal("false") - readonly t StartupCPUShares = ...; - @org.freedesktop.DBus.Property.EmitsChangedSignal("false") readonly t CPUQuotaPerSecUSec = ...; @org.freedesktop.DBus.Property.EmitsChangedSignal("false") readonly t CPUQuotaPeriodUSec = ...; @@ -7170,18 +7052,6 @@ node /org/freedesktop/systemd1/unit/home_2emount { @org.freedesktop.DBus.Property.EmitsChangedSignal("false") readonly a(st) IODeviceLatencyTargetUSec = [...]; @org.freedesktop.DBus.Property.EmitsChangedSignal("false") - readonly b BlockIOAccounting = ...; - @org.freedesktop.DBus.Property.EmitsChangedSignal("false") - readonly t BlockIOWeight = ...; - @org.freedesktop.DBus.Property.EmitsChangedSignal("false") - readonly t StartupBlockIOWeight = ...; - @org.freedesktop.DBus.Property.EmitsChangedSignal("false") - readonly a(st) BlockIODeviceWeight = [...]; - @org.freedesktop.DBus.Property.EmitsChangedSignal("false") - readonly a(st) BlockIOReadBandwidth = [...]; - @org.freedesktop.DBus.Property.EmitsChangedSignal("false") - readonly a(st) BlockIOWriteBandwidth = [...]; - @org.freedesktop.DBus.Property.EmitsChangedSignal("false") readonly b MemoryAccounting = ...; @org.freedesktop.DBus.Property.EmitsChangedSignal("false") readonly t DefaultMemoryLow = ...; @@ -7214,8 +7084,6 @@ node /org/freedesktop/systemd1/unit/home_2emount { @org.freedesktop.DBus.Property.EmitsChangedSignal("false") readonly b MemoryZSwapWriteback = ...; @org.freedesktop.DBus.Property.EmitsChangedSignal("false") - readonly t MemoryLimit = ...; - @org.freedesktop.DBus.Property.EmitsChangedSignal("false") readonly s DevicePolicy = '...'; @org.freedesktop.DBus.Property.EmitsChangedSignal("false") readonly a(ss) DeviceAllow = [...]; @@ -7737,10 +7605,6 @@ node /org/freedesktop/systemd1/unit/home_2emount { - - - - @@ -7771,18 +7635,6 @@ node /org/freedesktop/systemd1/unit/home_2emount { - - - - - - - - - - - - @@ -7815,8 +7667,6 @@ node /org/freedesktop/systemd1/unit/home_2emount { - - @@ -8297,10 +8147,6 @@ node /org/freedesktop/systemd1/unit/home_2emount { - - - - @@ -8331,18 +8177,6 @@ node /org/freedesktop/systemd1/unit/home_2emount { - - - - - - - - - - - - @@ -8375,8 +8209,6 @@ node /org/freedesktop/systemd1/unit/home_2emount { - - @@ -9132,10 +8964,6 @@ node /org/freedesktop/systemd1/unit/dev_2dsda3_2eswap { @org.freedesktop.DBus.Property.EmitsChangedSignal("false") readonly t StartupCPUWeight = ...; @org.freedesktop.DBus.Property.EmitsChangedSignal("false") - readonly t CPUShares = ...; - @org.freedesktop.DBus.Property.EmitsChangedSignal("false") - readonly t StartupCPUShares = ...; - @org.freedesktop.DBus.Property.EmitsChangedSignal("false") readonly t CPUQuotaPerSecUSec = ...; @org.freedesktop.DBus.Property.EmitsChangedSignal("false") readonly t CPUQuotaPeriodUSec = ...; @@ -9166,18 +8994,6 @@ node /org/freedesktop/systemd1/unit/dev_2dsda3_2eswap { @org.freedesktop.DBus.Property.EmitsChangedSignal("false") readonly a(st) IODeviceLatencyTargetUSec = [...]; @org.freedesktop.DBus.Property.EmitsChangedSignal("false") - readonly b BlockIOAccounting = ...; - @org.freedesktop.DBus.Property.EmitsChangedSignal("false") - readonly t BlockIOWeight = ...; - @org.freedesktop.DBus.Property.EmitsChangedSignal("false") - readonly t StartupBlockIOWeight = ...; - @org.freedesktop.DBus.Property.EmitsChangedSignal("false") - readonly a(st) BlockIODeviceWeight = [...]; - @org.freedesktop.DBus.Property.EmitsChangedSignal("false") - readonly a(st) BlockIOReadBandwidth = [...]; - @org.freedesktop.DBus.Property.EmitsChangedSignal("false") - readonly a(st) BlockIOWriteBandwidth = [...]; - @org.freedesktop.DBus.Property.EmitsChangedSignal("false") readonly b MemoryAccounting = ...; @org.freedesktop.DBus.Property.EmitsChangedSignal("false") readonly t DefaultMemoryLow = ...; @@ -9210,8 +9026,6 @@ node /org/freedesktop/systemd1/unit/dev_2dsda3_2eswap { @org.freedesktop.DBus.Property.EmitsChangedSignal("false") readonly b MemoryZSwapWriteback = ...; @org.freedesktop.DBus.Property.EmitsChangedSignal("false") - readonly t MemoryLimit = ...; - @org.freedesktop.DBus.Property.EmitsChangedSignal("false") readonly s DevicePolicy = '...'; @org.freedesktop.DBus.Property.EmitsChangedSignal("false") readonly a(ss) DeviceAllow = [...]; @@ -9715,10 +9529,6 @@ node /org/freedesktop/systemd1/unit/dev_2dsda3_2eswap { - - - - @@ -9749,18 +9559,6 @@ node /org/freedesktop/systemd1/unit/dev_2dsda3_2eswap { - - - - - - - - - - - - @@ -9793,8 +9591,6 @@ node /org/freedesktop/systemd1/unit/dev_2dsda3_2eswap { - - @@ -10257,10 +10053,6 @@ node /org/freedesktop/systemd1/unit/dev_2dsda3_2eswap { - - - - @@ -10291,18 +10083,6 @@ node /org/freedesktop/systemd1/unit/dev_2dsda3_2eswap { - - - - - - - - - - - - @@ -10335,8 +10115,6 @@ node /org/freedesktop/systemd1/unit/dev_2dsda3_2eswap { - - @@ -10945,10 +10723,6 @@ node /org/freedesktop/systemd1/unit/system_2eslice { @org.freedesktop.DBus.Property.EmitsChangedSignal("false") readonly t StartupCPUWeight = ...; @org.freedesktop.DBus.Property.EmitsChangedSignal("false") - readonly t CPUShares = ...; - @org.freedesktop.DBus.Property.EmitsChangedSignal("false") - readonly t StartupCPUShares = ...; - @org.freedesktop.DBus.Property.EmitsChangedSignal("false") readonly t CPUQuotaPerSecUSec = ...; @org.freedesktop.DBus.Property.EmitsChangedSignal("false") readonly t CPUQuotaPeriodUSec = ...; @@ -10979,18 +10753,6 @@ node /org/freedesktop/systemd1/unit/system_2eslice { @org.freedesktop.DBus.Property.EmitsChangedSignal("false") readonly a(st) IODeviceLatencyTargetUSec = [...]; @org.freedesktop.DBus.Property.EmitsChangedSignal("false") - readonly b BlockIOAccounting = ...; - @org.freedesktop.DBus.Property.EmitsChangedSignal("false") - readonly t BlockIOWeight = ...; - @org.freedesktop.DBus.Property.EmitsChangedSignal("false") - readonly t StartupBlockIOWeight = ...; - @org.freedesktop.DBus.Property.EmitsChangedSignal("false") - readonly a(st) BlockIODeviceWeight = [...]; - @org.freedesktop.DBus.Property.EmitsChangedSignal("false") - readonly a(st) BlockIOReadBandwidth = [...]; - @org.freedesktop.DBus.Property.EmitsChangedSignal("false") - readonly a(st) BlockIOWriteBandwidth = [...]; - @org.freedesktop.DBus.Property.EmitsChangedSignal("false") readonly b MemoryAccounting = ...; @org.freedesktop.DBus.Property.EmitsChangedSignal("false") readonly t DefaultMemoryLow = ...; @@ -11023,8 +10785,6 @@ node /org/freedesktop/systemd1/unit/system_2eslice { @org.freedesktop.DBus.Property.EmitsChangedSignal("false") readonly b MemoryZSwapWriteback = ...; @org.freedesktop.DBus.Property.EmitsChangedSignal("false") - readonly t MemoryLimit = ...; - @org.freedesktop.DBus.Property.EmitsChangedSignal("false") readonly s DevicePolicy = '...'; @org.freedesktop.DBus.Property.EmitsChangedSignal("false") readonly a(ss) DeviceAllow = [...]; @@ -11138,10 +10898,6 @@ node /org/freedesktop/systemd1/unit/system_2eslice { - - - - @@ -11172,18 +10928,6 @@ node /org/freedesktop/systemd1/unit/system_2eslice { - - - - - - - - - - - - @@ -11216,8 +10960,6 @@ node /org/freedesktop/systemd1/unit/system_2eslice { - - @@ -11338,10 +11080,6 @@ node /org/freedesktop/systemd1/unit/system_2eslice { - - - - @@ -11372,18 +11110,6 @@ node /org/freedesktop/systemd1/unit/system_2eslice { - - - - - - - - - - - - @@ -11416,8 +11142,6 @@ node /org/freedesktop/systemd1/unit/system_2eslice { - - @@ -11569,10 +11293,6 @@ node /org/freedesktop/systemd1/unit/session_2d1_2escope { @org.freedesktop.DBus.Property.EmitsChangedSignal("false") readonly t StartupCPUWeight = ...; @org.freedesktop.DBus.Property.EmitsChangedSignal("false") - readonly t CPUShares = ...; - @org.freedesktop.DBus.Property.EmitsChangedSignal("false") - readonly t StartupCPUShares = ...; - @org.freedesktop.DBus.Property.EmitsChangedSignal("false") readonly t CPUQuotaPerSecUSec = ...; @org.freedesktop.DBus.Property.EmitsChangedSignal("false") readonly t CPUQuotaPeriodUSec = ...; @@ -11603,18 +11323,6 @@ node /org/freedesktop/systemd1/unit/session_2d1_2escope { @org.freedesktop.DBus.Property.EmitsChangedSignal("false") readonly a(st) IODeviceLatencyTargetUSec = [...]; @org.freedesktop.DBus.Property.EmitsChangedSignal("false") - readonly b BlockIOAccounting = ...; - @org.freedesktop.DBus.Property.EmitsChangedSignal("false") - readonly t BlockIOWeight = ...; - @org.freedesktop.DBus.Property.EmitsChangedSignal("false") - readonly t StartupBlockIOWeight = ...; - @org.freedesktop.DBus.Property.EmitsChangedSignal("false") - readonly a(st) BlockIODeviceWeight = [...]; - @org.freedesktop.DBus.Property.EmitsChangedSignal("false") - readonly a(st) BlockIOReadBandwidth = [...]; - @org.freedesktop.DBus.Property.EmitsChangedSignal("false") - readonly a(st) BlockIOWriteBandwidth = [...]; - @org.freedesktop.DBus.Property.EmitsChangedSignal("false") readonly b MemoryAccounting = ...; @org.freedesktop.DBus.Property.EmitsChangedSignal("false") readonly t DefaultMemoryLow = ...; @@ -11647,8 +11355,6 @@ node /org/freedesktop/systemd1/unit/session_2d1_2escope { @org.freedesktop.DBus.Property.EmitsChangedSignal("false") readonly b MemoryZSwapWriteback = ...; @org.freedesktop.DBus.Property.EmitsChangedSignal("false") - readonly t MemoryLimit = ...; - @org.freedesktop.DBus.Property.EmitsChangedSignal("false") readonly s DevicePolicy = '...'; @org.freedesktop.DBus.Property.EmitsChangedSignal("false") readonly a(ss) DeviceAllow = [...]; @@ -11782,10 +11488,6 @@ node /org/freedesktop/systemd1/unit/session_2d1_2escope { - - - - @@ -11816,18 +11518,6 @@ node /org/freedesktop/systemd1/unit/session_2d1_2escope { - - - - - - - - - - - - @@ -11860,8 +11550,6 @@ node /org/freedesktop/systemd1/unit/session_2d1_2escope { - - @@ -12012,10 +11700,6 @@ node /org/freedesktop/systemd1/unit/session_2d1_2escope { - - - - @@ -12046,18 +11730,6 @@ node /org/freedesktop/systemd1/unit/session_2d1_2escope { - - - - - - - - - - - - @@ -12090,8 +11762,6 @@ node /org/freedesktop/systemd1/unit/session_2d1_2escope { - - diff --git a/src/core/dbus-cgroup.c b/src/core/dbus-cgroup.c index bd355281e71..2be7dfaa295 100644 --- a/src/core/dbus-cgroup.c +++ b/src/core/dbus-cgroup.c @@ -35,6 +35,8 @@ static BUS_DEFINE_PROPERTY_GET_ENUM(property_get_cgroup_device_policy, cgroup_de static BUS_DEFINE_PROPERTY_GET_ENUM(property_get_managed_oom_mode, managed_oom_mode, ManagedOOMMode); static BUS_DEFINE_PROPERTY_GET_ENUM(property_get_managed_oom_preference, managed_oom_preference, ManagedOOMPreference); +static BUS_DEFINE_PROPERTY_GET_GLOBAL(property_get_blockio_ast, "a(st)", 0); + static int property_get_cgroup_mask( sd_bus *bus, const char *path, @@ -196,72 +198,6 @@ static int property_get_io_device_latency( return sd_bus_message_close_container(reply); } -static int property_get_blockio_device_weight( - sd_bus *bus, - const char *path, - const char *interface, - const char *property, - sd_bus_message *reply, - void *userdata, - sd_bus_error *error) { - - CGroupContext *c = ASSERT_PTR(userdata); - int r; - - assert(bus); - assert(reply); - - r = sd_bus_message_open_container(reply, 'a', "(st)"); - if (r < 0) - return r; - - LIST_FOREACH(device_weights, w, c->blockio_device_weights) { - r = sd_bus_message_append(reply, "(st)", w->path, w->weight); - if (r < 0) - return r; - } - - return sd_bus_message_close_container(reply); -} - -static int property_get_blockio_device_bandwidths( - sd_bus *bus, - const char *path, - const char *interface, - const char *property, - sd_bus_message *reply, - void *userdata, - sd_bus_error *error) { - - CGroupContext *c = ASSERT_PTR(userdata); - int r; - - assert(bus); - assert(reply); - - r = sd_bus_message_open_container(reply, 'a', "(st)"); - if (r < 0) - return r; - - LIST_FOREACH(device_bandwidths, b, c->blockio_device_bandwidths) { - uint64_t v; - - if (streq(property, "BlockIOReadBandwidth")) - v = b->rbps; - else - v = b->wbps; - - if (v == CGROUP_LIMIT_MAX) - continue; - - r = sd_bus_message_append(reply, "(st)", b->path, v); - if (r < 0) - return r; - } - - return sd_bus_message_close_container(reply); -} - static int property_get_device_allow( sd_bus *bus, const char *path, @@ -450,8 +386,6 @@ const sd_bus_vtable bus_cgroup_vtable[] = { SD_BUS_PROPERTY("CPUAccounting", "b", bus_property_get_bool, offsetof(CGroupContext, cpu_accounting), 0), SD_BUS_PROPERTY("CPUWeight", "t", NULL, offsetof(CGroupContext, cpu_weight), 0), SD_BUS_PROPERTY("StartupCPUWeight", "t", NULL, offsetof(CGroupContext, startup_cpu_weight), 0), - SD_BUS_PROPERTY("CPUShares", "t", NULL, offsetof(CGroupContext, cpu_shares), 0), - SD_BUS_PROPERTY("StartupCPUShares", "t", NULL, offsetof(CGroupContext, startup_cpu_shares), 0), SD_BUS_PROPERTY("CPUQuotaPerSecUSec", "t", bus_property_get_usec, offsetof(CGroupContext, cpu_quota_per_sec_usec), 0), SD_BUS_PROPERTY("CPUQuotaPeriodUSec", "t", bus_property_get_usec, offsetof(CGroupContext, cpu_quota_period_usec), 0), SD_BUS_PROPERTY("AllowedCPUs", "ay", property_get_cpuset, offsetof(CGroupContext, cpuset_cpus), 0), @@ -467,12 +401,6 @@ const sd_bus_vtable bus_cgroup_vtable[] = { SD_BUS_PROPERTY("IOReadIOPSMax", "a(st)", property_get_io_device_limits, 0, 0), SD_BUS_PROPERTY("IOWriteIOPSMax", "a(st)", property_get_io_device_limits, 0, 0), SD_BUS_PROPERTY("IODeviceLatencyTargetUSec", "a(st)", property_get_io_device_latency, 0, 0), - SD_BUS_PROPERTY("BlockIOAccounting", "b", bus_property_get_bool, offsetof(CGroupContext, blockio_accounting), 0), - SD_BUS_PROPERTY("BlockIOWeight", "t", NULL, offsetof(CGroupContext, blockio_weight), 0), - SD_BUS_PROPERTY("StartupBlockIOWeight", "t", NULL, offsetof(CGroupContext, startup_blockio_weight), 0), - SD_BUS_PROPERTY("BlockIODeviceWeight", "a(st)", property_get_blockio_device_weight, 0, 0), - SD_BUS_PROPERTY("BlockIOReadBandwidth", "a(st)", property_get_blockio_device_bandwidths, 0, 0), - SD_BUS_PROPERTY("BlockIOWriteBandwidth", "a(st)", property_get_blockio_device_bandwidths, 0, 0), SD_BUS_PROPERTY("MemoryAccounting", "b", bus_property_get_bool, offsetof(CGroupContext, memory_accounting), 0), SD_BUS_PROPERTY("DefaultMemoryLow", "t", NULL, offsetof(CGroupContext, default_memory_low), 0), SD_BUS_PROPERTY("DefaultStartupMemoryLow", "t", NULL, offsetof(CGroupContext, default_startup_memory_low), 0), @@ -489,7 +417,6 @@ const sd_bus_vtable bus_cgroup_vtable[] = { SD_BUS_PROPERTY("MemoryZSwapMax", "t", NULL, offsetof(CGroupContext, memory_zswap_max), 0), SD_BUS_PROPERTY("StartupMemoryZSwapMax", "t", NULL, offsetof(CGroupContext, startup_memory_zswap_max), 0), SD_BUS_PROPERTY("MemoryZSwapWriteback", "b", bus_property_get_bool, offsetof(CGroupContext, memory_zswap_writeback), 0), - SD_BUS_PROPERTY("MemoryLimit", "t", NULL, offsetof(CGroupContext, memory_limit), 0), SD_BUS_PROPERTY("DevicePolicy", "s", property_get_cgroup_device_policy, offsetof(CGroupContext, device_policy), 0), SD_BUS_PROPERTY("DeviceAllow", "a(ss)", property_get_device_allow, 0, 0), SD_BUS_PROPERTY("TasksAccounting", "b", bus_property_get_bool, offsetof(CGroupContext, tasks_accounting), 0), @@ -513,6 +440,16 @@ const sd_bus_vtable bus_cgroup_vtable[] = { SD_BUS_PROPERTY("MemoryPressureThresholdUSec", "t", bus_property_get_usec, offsetof(CGroupContext, memory_pressure_threshold_usec), 0), SD_BUS_PROPERTY("NFTSet", "a(iiss)", property_get_cgroup_nft_set, 0, 0), SD_BUS_PROPERTY("CoredumpReceive", "b", bus_property_get_bool, offsetof(CGroupContext, coredump_receive), 0), + /* deprecated cgroup v1 properties */ + SD_BUS_PROPERTY("MemoryLimit", "t", bus_property_get_uint64_max, 0, SD_BUS_VTABLE_DEPRECATED|SD_BUS_VTABLE_HIDDEN), + SD_BUS_PROPERTY("CPUShares", "t", bus_property_get_uint64_max, 0, SD_BUS_VTABLE_DEPRECATED|SD_BUS_VTABLE_HIDDEN), + SD_BUS_PROPERTY("StartupCPUShares", "t", bus_property_get_uint64_max, 0, SD_BUS_VTABLE_DEPRECATED|SD_BUS_VTABLE_HIDDEN), + SD_BUS_PROPERTY("BlockIOAccounting", "b", bus_property_get_bool_false, 0, SD_BUS_VTABLE_DEPRECATED|SD_BUS_VTABLE_HIDDEN), + SD_BUS_PROPERTY("BlockIOWeight", "t", bus_property_get_uint64_max, 0, SD_BUS_VTABLE_DEPRECATED|SD_BUS_VTABLE_HIDDEN), + SD_BUS_PROPERTY("StartupBlockIOWeight", "t", bus_property_get_uint64_max, 0, SD_BUS_VTABLE_DEPRECATED|SD_BUS_VTABLE_HIDDEN), + SD_BUS_PROPERTY("BlockIODeviceWeight", "a(st)", property_get_blockio_ast, 0, SD_BUS_VTABLE_DEPRECATED|SD_BUS_VTABLE_HIDDEN), + SD_BUS_PROPERTY("BlockIOReadBandwidth", "a(st)", property_get_blockio_ast, 0, SD_BUS_VTABLE_DEPRECATED|SD_BUS_VTABLE_HIDDEN), + SD_BUS_PROPERTY("BlockIOWriteBandwidth", "a(st)", property_get_blockio_ast, 0, SD_BUS_VTABLE_DEPRECATED|SD_BUS_VTABLE_HIDDEN), SD_BUS_VTABLE_END }; @@ -993,9 +930,7 @@ static int bus_cgroup_set_boolean( } DISABLE_WARNING_TYPE_LIMITS; -BUS_DEFINE_SET_CGROUP_WEIGHT(cpu_shares, CGROUP_MASK_CPU, CGROUP_CPU_SHARES_IS_OK, CGROUP_CPU_SHARES_INVALID); BUS_DEFINE_SET_CGROUP_WEIGHT(io_weight, CGROUP_MASK_IO, CGROUP_WEIGHT_IS_OK, CGROUP_WEIGHT_INVALID); -BUS_DEFINE_SET_CGROUP_WEIGHT(blockio_weight, CGROUP_MASK_BLKIO, CGROUP_BLKIO_WEIGHT_IS_OK, CGROUP_BLKIO_WEIGHT_INVALID); BUS_DEFINE_SET_CGROUP_LIMIT(memory, CGROUP_MASK_MEMORY, physical_memory_scale, 1); BUS_DEFINE_SET_CGROUP_LIMIT(memory_protection, CGROUP_MASK_MEMORY, physical_memory_scale, 0); BUS_DEFINE_SET_CGROUP_LIMIT(swap, CGROUP_MASK_MEMORY, physical_memory_scale, 0); @@ -1127,12 +1062,6 @@ int bus_cgroup_set_property( if (streq(name, "StartupCPUWeight")) return bus_cgroup_set_cpu_weight(u, name, &c->startup_cpu_weight, message, flags, error); - if (streq(name, "CPUShares")) - return bus_cgroup_set_cpu_shares(u, name, &c->cpu_shares, message, flags, error); - - if (streq(name, "StartupCPUShares")) - return bus_cgroup_set_cpu_shares(u, name, &c->startup_cpu_shares, message, flags, error); - if (streq(name, "IOAccounting")) return bus_cgroup_set_boolean(u, name, &c->io_accounting, CGROUP_MASK_IO, message, flags, error); @@ -1142,15 +1071,6 @@ int bus_cgroup_set_property( if (streq(name, "StartupIOWeight")) return bus_cgroup_set_io_weight(u, name, &c->startup_io_weight, message, flags, error); - if (streq(name, "BlockIOAccounting")) - return bus_cgroup_set_boolean(u, name, &c->blockio_accounting, CGROUP_MASK_BLKIO, message, flags, error); - - if (streq(name, "BlockIOWeight")) - return bus_cgroup_set_blockio_weight(u, name, &c->blockio_weight, message, flags, error); - - if (streq(name, "StartupBlockIOWeight")) - return bus_cgroup_set_blockio_weight(u, name, &c->startup_blockio_weight, message, flags, error); - if (streq(name, "MemoryAccounting")) return bus_cgroup_set_boolean(u, name, &c->memory_accounting, CGROUP_MASK_MEMORY, message, flags, error); @@ -1236,9 +1156,6 @@ int bus_cgroup_set_property( return r; } - if (streq(name, "MemoryLimit")) - return bus_cgroup_set_memory(u, name, &c->memory_limit, message, flags, error); - if (streq(name, "MemoryMinScale")) { r = bus_cgroup_set_memory_protection_scale(u, name, &c->memory_min, message, flags, error); if (r > 0) @@ -1279,9 +1196,6 @@ int bus_cgroup_set_property( if (streq(name, "MemoryMaxScale")) return bus_cgroup_set_memory_scale(u, name, &c->memory_max, message, flags, error); - if (streq(name, "MemoryLimitScale")) - return bus_cgroup_set_memory_scale(u, name, &c->memory_limit, message, flags, error); - if (streq(name, "MemoryZSwapWriteback")) return bus_cgroup_set_boolean(u, name, &c->memory_zswap_writeback, CGROUP_MASK_MEMORY, message, flags, error); @@ -1622,180 +1536,6 @@ int bus_cgroup_set_property( return 1; - } else if (STR_IN_SET(name, "BlockIOReadBandwidth", "BlockIOWriteBandwidth")) { - const char *path; - unsigned n = 0; - uint64_t u64; - bool read; - - read = streq(name, "BlockIOReadBandwidth"); - - r = sd_bus_message_enter_container(message, 'a', "(st)"); - if (r < 0) - return r; - - while ((r = sd_bus_message_read(message, "(st)", &path, &u64)) > 0) { - - if (!path_is_normalized(path)) - return sd_bus_error_setf(error, SD_BUS_ERROR_INVALID_ARGS, "Path '%s' specified in %s= is not normalized.", name, path); - - if (!UNIT_WRITE_FLAGS_NOOP(flags)) { - CGroupBlockIODeviceBandwidth *a = NULL; - - LIST_FOREACH(device_bandwidths, b, c->blockio_device_bandwidths) - if (path_equal(path, b->path)) { - a = b; - break; - } - - if (!a) { - a = new0(CGroupBlockIODeviceBandwidth, 1); - if (!a) - return -ENOMEM; - - a->rbps = CGROUP_LIMIT_MAX; - a->wbps = CGROUP_LIMIT_MAX; - a->path = strdup(path); - if (!a->path) { - free(a); - return -ENOMEM; - } - - LIST_APPEND(device_bandwidths, c->blockio_device_bandwidths, a); - } - - if (read) - a->rbps = u64; - else - a->wbps = u64; - } - - n++; - } - if (r < 0) - return r; - - r = sd_bus_message_exit_container(message); - if (r < 0) - return r; - - if (!UNIT_WRITE_FLAGS_NOOP(flags)) { - _cleanup_(memstream_done) MemStream m = {}; - _cleanup_free_ char *buf = NULL; - FILE *f; - - if (n == 0) - LIST_FOREACH(device_bandwidths, a, c->blockio_device_bandwidths) { - if (read) - a->rbps = CGROUP_LIMIT_MAX; - else - a->wbps = CGROUP_LIMIT_MAX; - } - - unit_invalidate_cgroup(u, CGROUP_MASK_BLKIO); - - f = memstream_init(&m); - if (!f) - return -ENOMEM; - - if (read) { - fputs("BlockIOReadBandwidth=\n", f); - LIST_FOREACH(device_bandwidths, a, c->blockio_device_bandwidths) - if (a->rbps != CGROUP_LIMIT_MAX) - fprintf(f, "BlockIOReadBandwidth=%s %" PRIu64 "\n", a->path, a->rbps); - } else { - fputs("BlockIOWriteBandwidth=\n", f); - LIST_FOREACH(device_bandwidths, a, c->blockio_device_bandwidths) - if (a->wbps != CGROUP_LIMIT_MAX) - fprintf(f, "BlockIOWriteBandwidth=%s %" PRIu64 "\n", a->path, a->wbps); - } - - r = memstream_finalize(&m, &buf, NULL); - if (r < 0) - return r; - - unit_write_setting(u, flags, name, buf); - } - - return 1; - - } else if (streq(name, "BlockIODeviceWeight")) { - const char *path; - uint64_t weight; - unsigned n = 0; - - r = sd_bus_message_enter_container(message, 'a', "(st)"); - if (r < 0) - return r; - - while ((r = sd_bus_message_read(message, "(st)", &path, &weight)) > 0) { - - if (!path_is_normalized(path)) - return sd_bus_error_setf(error, SD_BUS_ERROR_INVALID_ARGS, "Path '%s' specified in %s= is not normalized.", name, path); - - if (!CGROUP_BLKIO_WEIGHT_IS_OK(weight) || weight == CGROUP_BLKIO_WEIGHT_INVALID) - return sd_bus_error_set(error, SD_BUS_ERROR_INVALID_ARGS, "BlockIODeviceWeight= out of range"); - - if (!UNIT_WRITE_FLAGS_NOOP(flags)) { - CGroupBlockIODeviceWeight *a = NULL; - - LIST_FOREACH(device_weights, b, c->blockio_device_weights) - if (path_equal(b->path, path)) { - a = b; - break; - } - - if (!a) { - a = new0(CGroupBlockIODeviceWeight, 1); - if (!a) - return -ENOMEM; - - a->path = strdup(path); - if (!a->path) { - free(a); - return -ENOMEM; - } - LIST_APPEND(device_weights, c->blockio_device_weights, a); - } - - a->weight = weight; - } - - n++; - } - - r = sd_bus_message_exit_container(message); - if (r < 0) - return r; - - if (!UNIT_WRITE_FLAGS_NOOP(flags)) { - _cleanup_(memstream_done) MemStream m = {}; - _cleanup_free_ char *buf = NULL; - FILE *f; - - if (n == 0) - while (c->blockio_device_weights) - cgroup_context_free_blockio_device_weight(c, c->blockio_device_weights); - - unit_invalidate_cgroup(u, CGROUP_MASK_BLKIO); - - f = memstream_init(&m); - if (!f) - return -ENOMEM; - - fputs("BlockIODeviceWeight=\n", f); - LIST_FOREACH(device_weights, a, c->blockio_device_weights) - fprintf(f, "BlockIODeviceWeight=%s %" PRIu64 "\n", a->path, a->weight); - - r = memstream_finalize(&m, &buf, NULL); - if (r < 0) - return r; - - unit_write_setting(u, flags, name, buf); - } - - return 1; - } else if (streq(name, "DevicePolicy")) { const char *policy; CGroupDevicePolicy p; @@ -2319,6 +2059,26 @@ int bus_cgroup_set_property( return 1; } + /* deprecated CGroup v1 properties */ + if (STR_IN_SET(name, + "MemoryLimit", + "MemoryLimitScale", + "CPUShares", + "StartupCPUShares", + "BlockIOAccounting", + "BlockIOWeight", + "StartupBlockIOWeight", + "BlockIODeviceWeight", + "BlockIOReadBandwidth", + "BlockIOWriteBandwidth")) { + + r = sd_bus_message_skip(message, NULL); + if (r < 0) + return r; + + return 1; + } + /* must be last */ if (streq(name, "DisableControllers") || (u->transient && u->load_state == UNIT_STUB)) return bus_cgroup_set_transient_property(u, c, name, message, flags, error); diff --git a/src/core/dbus-manager.c b/src/core/dbus-manager.c index 8addce3d102..bf86e799096 100644 --- a/src/core/dbus-manager.c +++ b/src/core/dbus-manager.c @@ -3057,7 +3057,6 @@ const sd_bus_vtable bus_manager_vtable[] = { SD_BUS_PROPERTY("DefaultStartLimitInterval", "t", bus_property_get_usec, offsetof(Manager, defaults.start_limit.interval), SD_BUS_VTABLE_PROPERTY_CONST|SD_BUS_VTABLE_HIDDEN), SD_BUS_PROPERTY("DefaultStartLimitBurst", "u", bus_property_get_unsigned, offsetof(Manager, defaults.start_limit.burst), SD_BUS_VTABLE_PROPERTY_CONST), SD_BUS_PROPERTY("DefaultCPUAccounting", "b", bus_property_get_bool, offsetof(Manager, defaults.cpu_accounting), SD_BUS_VTABLE_PROPERTY_CONST), - SD_BUS_PROPERTY("DefaultBlockIOAccounting", "b", bus_property_get_bool, offsetof(Manager, defaults.blockio_accounting), SD_BUS_VTABLE_PROPERTY_CONST), SD_BUS_PROPERTY("DefaultIOAccounting", "b", bus_property_get_bool, offsetof(Manager, defaults.io_accounting), SD_BUS_VTABLE_PROPERTY_CONST), SD_BUS_PROPERTY("DefaultIPAccounting", "b", bus_property_get_bool, offsetof(Manager, defaults.ip_accounting), SD_BUS_VTABLE_PROPERTY_CONST), SD_BUS_PROPERTY("DefaultMemoryAccounting", "b", bus_property_get_bool, offsetof(Manager, defaults.memory_accounting), SD_BUS_VTABLE_PROPERTY_CONST), @@ -3102,6 +3101,8 @@ const sd_bus_vtable bus_manager_vtable[] = { SD_BUS_PROPERTY("DefaultOOMScoreAdjust", "i", property_get_oom_score_adjust, 0, SD_BUS_VTABLE_PROPERTY_CONST), SD_BUS_PROPERTY("CtrlAltDelBurstAction", "s", bus_property_get_emergency_action, offsetof(Manager, cad_burst_action), SD_BUS_VTABLE_PROPERTY_CONST), SD_BUS_PROPERTY("SoftRebootsCount", "u", bus_property_get_unsigned, offsetof(Manager, soft_reboots_count), SD_BUS_VTABLE_PROPERTY_CONST), + /* deprecated cgroup v1 property */ + SD_BUS_PROPERTY("DefaultBlockIOAccounting", "b", bus_property_get_bool_false, 0, SD_BUS_VTABLE_PROPERTY_CONST|SD_BUS_VTABLE_DEPRECATED|SD_BUS_VTABLE_HIDDEN), SD_BUS_METHOD_WITH_ARGS("GetUnit", SD_BUS_ARGS("s", name), diff --git a/src/shared/bus-get-properties.c b/src/shared/bus-get-properties.c index bf267a23a55..696671a916e 100644 --- a/src/shared/bus-get-properties.c +++ b/src/shared/bus-get-properties.c @@ -6,6 +6,9 @@ #include "stdio-util.h" #include "string-util.h" +BUS_DEFINE_PROPERTY_GET_GLOBAL(bus_property_get_bool_false, "b", 0); +BUS_DEFINE_PROPERTY_GET_GLOBAL(bus_property_get_uint64_max, "t", UINT64_MAX); + int bus_property_get_bool( sd_bus *bus, const char *path, diff --git a/src/shared/bus-get-properties.h b/src/shared/bus-get-properties.h index 9ddf5454de6..73e85cd2c86 100644 --- a/src/shared/bus-get-properties.h +++ b/src/shared/bus-get-properties.h @@ -5,6 +5,10 @@ #include "macro.h" +/* For deprecated properties. */ +int bus_property_get_bool_false(sd_bus *bus, const char *path, const char *interface, const char *property, sd_bus_message *reply, void *userdata, sd_bus_error *error); +int bus_property_get_uint64_max(sd_bus *bus, const char *path, const char *interface, const char *property, sd_bus_message *reply, void *userdata, sd_bus_error *error); + int bus_property_get_bool(sd_bus *bus, const char *path, const char *interface, const char *property, sd_bus_message *reply, void *userdata, sd_bus_error *error); int bus_property_set_bool(sd_bus *bus, const char *path, const char *interface, const char *property, sd_bus_message *value, void *userdata, sd_bus_error *error); int bus_property_get_tristate(sd_bus *bus, const char *path, const char *interface, const char *property, sd_bus_message *reply, void *userdata, sd_bus_error *error);