mirror of
https://github.com/opencontainers/runc.git
synced 2026-07-10 21:53:57 +08:00
libct/cg/sd: support setting cpu.idle via systemd
Systemd v252 (available in CentOS Stream 9 in our CI) added support for setting cpu.idle (see [1]). The way it works is: - if CPUWeight == 0, cpu.idle is set to 1; - if CPUWeight != 0, cpu.idle is set to 0. This commit implements setting cpu.idle in systemd cgroup driver via a unit property. In case CPUIdle is set to non-zero value, the driver sets adds CPUWeight=0 property, which will result in systemd setting cpu.idle to 1. Unfortunately, there's no way to set cpu.idle to 0 without also changing the CPUWeight value, so the driver doesn't do anything if CPUIdle is explicitly set to 0. This case is handled by the fs driver which is always used as a followup to setting systemd unit properties. Also, handle cpu.idle set via unified map. In case it is set to non-zero value, add CPUWeight=0 property, and ignore cpu.weight (otherwise we'll get two different CPUWeight properties set). Add a unit test for new values in unified map, and an integration test case. [1] https://github.com/systemd/systemd/pull/23299 [2] https://github.com/opencontainers/runc/issues/3786 Signed-off-by: Kir Kolyshkin <kolyshkin@gmail.com>
This commit is contained in:
@@ -91,6 +91,7 @@ The following tables summarize which properties are translated.
|
||||
| cpu.mems | AllowedMemoryNodes | v244 |
|
||||
| unified.cpu.max | CPUQuota, CPUQuotaPeriodSec | v242 |
|
||||
| unified.cpu.weight | CPUWeight | |
|
||||
| unified.cpu.idle | CPUWeight | v252 |
|
||||
| unified.cpuset.cpus | AllowedCPUs | v244 |
|
||||
| unified.cpuset.mems | AllowedMemoryNodes | v244 |
|
||||
| unified.memory.high | MemoryHigh | |
|
||||
|
||||
Reference in New Issue
Block a user