!554 add cpuset-cgv1 and freezer-cgv1 macros, add missing sw_64 macro

From: @huyubiao 
Reviewed-by: @licunlong 
Signed-off-by: @licunlong
This commit is contained in:
openeuler-ci-bot 2024-02-28 09:05:00 +00:00 committed by Gitee
commit 78579e84fa
No known key found for this signature in database
GPG Key ID: 173E9B9CA92EEF8F
3 changed files with 99 additions and 21 deletions

View File

@ -5,8 +5,10 @@ Subject: [PATCH] core-cgroup: support cpuset
This patch add support for cpuset subsystem. This patch add support for cpuset subsystem.
--- ---
meson.build | 2 +
meson_options.txt | 3 +
src/basic/cgroup-util.c | 3 +- src/basic/cgroup-util.c | 3 +-
src/basic/cgroup-util.h | 10 +- src/basic/cgroup-util.h | 14 ++-
src/basic/string-util.c | 42 +++++++ src/basic/string-util.c | 42 +++++++
src/basic/string-util.h | 1 + src/basic/string-util.h | 1 +
src/core/cgroup.c | 112 ++++++++++++++---- src/core/cgroup.c | 112 ++++++++++++++----
@ -26,8 +28,39 @@ This patch add support for cpuset subsystem.
src/shared/cpu-set-util.c | 1 + src/shared/cpu-set-util.c | 1 +
src/test/test-cgroup-mask.c | 5 +- src/test/test-cgroup-mask.c | 5 +-
.../fuzz-unit-file/directives-all.service | 5 + .../fuzz-unit-file/directives-all.service | 5 +
21 files changed, 329 insertions(+), 73 deletions(-) 23 files changed, 338 insertions(+), 73 deletions(-)
diff --git a/meson.build b/meson.build
index 7419e2b..614013b 100644
--- a/meson.build
+++ b/meson.build
@@ -1578,6 +1578,7 @@ foreach term : ['analyze',
'binfmt',
'compat-mutable-uid-boundaries',
'coredump',
+ 'cpuset-cgv1',
'efi',
'environment-d',
'firstboot',
@@ -2853,6 +2854,7 @@ foreach tuple : [
['fexecve'],
['standalone-binaries', get_option('standalone-binaries')],
['coverage', get_option('b_coverage')],
+ ['cpuset-cgv1'],
]
if tuple.length() >= 2
diff --git a/meson_options.txt b/meson_options.txt
index e708745..5fda5d9 100644
--- a/meson_options.txt
+++ b/meson_options.txt
@@ -514,3 +514,6 @@ option('bpf-compiler', type : 'combo', choices : ['clang', 'gcc'],
description: 'compiler used to build BPF programs')
option('bpf-framework', type : 'feature', deprecated : { 'true' : 'enabled', 'false' : 'disabled' },
description: 'build BPF programs from source code in restricted C')
+
+option('cpuset-cgv1', type : 'boolean', value : 'true',
+ description : 'enable cgroup v1 cpuset support')
diff --git a/src/basic/cgroup-util.c b/src/basic/cgroup-util.c diff --git a/src/basic/cgroup-util.c b/src/basic/cgroup-util.c
index 18b16ec..abd1f91 100644 index 18b16ec..abd1f91 100644
--- a/src/basic/cgroup-util.c --- a/src/basic/cgroup-util.c
@ -48,7 +81,7 @@ index 18b16ec..abd1f91 100644
[CGROUP_CONTROLLER_BPF_DEVICES] = "bpf-devices", [CGROUP_CONTROLLER_BPF_DEVICES] = "bpf-devices",
[CGROUP_CONTROLLER_BPF_FOREIGN] = "bpf-foreign", [CGROUP_CONTROLLER_BPF_FOREIGN] = "bpf-foreign",
diff --git a/src/basic/cgroup-util.h b/src/basic/cgroup-util.h diff --git a/src/basic/cgroup-util.h b/src/basic/cgroup-util.h
index 6ab14c7..99be6b8 100644 index 6ab14c7..dd3df28 100644
--- a/src/basic/cgroup-util.h --- a/src/basic/cgroup-util.h
+++ b/src/basic/cgroup-util.h +++ b/src/basic/cgroup-util.h
@@ -22,12 +22,13 @@ typedef enum CGroupController { @@ -22,12 +22,13 @@ typedef enum CGroupController {
@ -81,12 +114,16 @@ index 6ab14c7..99be6b8 100644
CGROUP_MASK_BPF_FIREWALL = CGROUP_CONTROLLER_TO_MASK(CGROUP_CONTROLLER_BPF_FIREWALL), CGROUP_MASK_BPF_FIREWALL = CGROUP_CONTROLLER_TO_MASK(CGROUP_CONTROLLER_BPF_FIREWALL),
CGROUP_MASK_BPF_DEVICES = CGROUP_CONTROLLER_TO_MASK(CGROUP_CONTROLLER_BPF_DEVICES), CGROUP_MASK_BPF_DEVICES = CGROUP_CONTROLLER_TO_MASK(CGROUP_CONTROLLER_BPF_DEVICES),
CGROUP_MASK_BPF_FOREIGN = CGROUP_CONTROLLER_TO_MASK(CGROUP_CONTROLLER_BPF_FOREIGN), CGROUP_MASK_BPF_FOREIGN = CGROUP_CONTROLLER_TO_MASK(CGROUP_CONTROLLER_BPF_FOREIGN),
@@ -62,10 +64,10 @@ typedef enum CGroupMask { @@ -62,10 +64,14 @@ typedef enum CGroupMask {
CGROUP_MASK_BPF_RESTRICT_NETWORK_INTERFACES = CGROUP_CONTROLLER_TO_MASK(CGROUP_CONTROLLER_BPF_RESTRICT_NETWORK_INTERFACES), CGROUP_MASK_BPF_RESTRICT_NETWORK_INTERFACES = CGROUP_CONTROLLER_TO_MASK(CGROUP_CONTROLLER_BPF_RESTRICT_NETWORK_INTERFACES),
/* All real cgroup v1 controllers */ /* All real cgroup v1 controllers */
- CGROUP_MASK_V1 = CGROUP_MASK_CPU|CGROUP_MASK_CPUACCT|CGROUP_MASK_BLKIO|CGROUP_MASK_MEMORY|CGROUP_MASK_DEVICES|CGROUP_MASK_PIDS, - CGROUP_MASK_V1 = CGROUP_MASK_CPU|CGROUP_MASK_CPUACCT|CGROUP_MASK_BLKIO|CGROUP_MASK_MEMORY|CGROUP_MASK_DEVICES|CGROUP_MASK_PIDS,
+ CGROUP_MASK_V1 = CGROUP_MASK_CPU|CGROUP_MASK_CPUACCT|CGROUP_MASK_BLKIO|CGROUP_MASK_MEMORY|CGROUP_MASK_CPUSET|CGROUP_MASK_DEVICES|CGROUP_MASK_PIDS, + CGROUP_MASK_V1 = CGROUP_MASK_CPU|CGROUP_MASK_CPUACCT|CGROUP_MASK_BLKIO|CGROUP_MASK_MEMORY|CGROUP_MASK_DEVICES|CGROUP_MASK_PIDS
+#if ENABLE_CPUSET_CGV1
+ | CGROUP_MASK_CPUSET
+#endif
+ ,
/* All real cgroup v2 controllers */ /* All real cgroup v2 controllers */
- CGROUP_MASK_V2 = CGROUP_MASK_CPU|CGROUP_MASK_CPUSET|CGROUP_MASK_IO|CGROUP_MASK_MEMORY|CGROUP_MASK_PIDS, - CGROUP_MASK_V2 = CGROUP_MASK_CPU|CGROUP_MASK_CPUSET|CGROUP_MASK_IO|CGROUP_MASK_MEMORY|CGROUP_MASK_PIDS,
@ -807,7 +844,7 @@ index 62112dc..de3f536 100644
{ "Manager", "DefaultTasksMax", config_parse_tasks_max, 0, &arg_defaults.tasks_max }, { "Manager", "DefaultTasksMax", config_parse_tasks_max, 0, &arg_defaults.tasks_max },
{ "Manager", "DefaultMemoryPressureThresholdSec", config_parse_sec, 0, &arg_defaults.memory_pressure_threshold_usec }, { "Manager", "DefaultMemoryPressureThresholdSec", config_parse_sec, 0, &arg_defaults.memory_pressure_threshold_usec },
diff --git a/src/core/manager.c b/src/core/manager.c diff --git a/src/core/manager.c b/src/core/manager.c
index ce20d6b..03508c7 100644 index ce20d6b..ef22fed 100644
--- a/src/core/manager.c --- a/src/core/manager.c
+++ b/src/core/manager.c +++ b/src/core/manager.c
@@ -4192,6 +4192,7 @@ int manager_set_unit_defaults(Manager *m, const UnitDefaults *defaults) { @@ -4192,6 +4192,7 @@ int manager_set_unit_defaults(Manager *m, const UnitDefaults *defaults) {
@ -949,5 +986,5 @@ index 4bdc48a..0e953f2 100644
CPUWeight= CPUWeight=
CapabilityBoundingSet= CapabilityBoundingSet=
-- --
2.33.0 2.41.0

View File

@ -5,8 +5,10 @@ Subject: [PATCH] core-cgroup: support freezer.
This patch add support for freezer subsystem. This patch add support for freezer subsystem.
--- ---
meson.build | 2 +
meson_options.txt | 3 ++
src/basic/cgroup-util.c | 1 + src/basic/cgroup-util.c | 1 +
src/basic/cgroup-util.h | 4 +- src/basic/cgroup-util.h | 5 +++
src/core/cgroup.c | 16 +++++++ src/core/cgroup.c | 16 +++++++
src/core/cgroup.h | 4 ++ src/core/cgroup.h | 4 ++
src/core/dbus-cgroup.c | 29 +++++++++++++ src/core/dbus-cgroup.c | 29 +++++++++++++
@ -24,9 +26,40 @@ This patch add support for freezer subsystem.
src/test/test-cgroup-freezer.c | 43 +++++++++++++++++++ src/test/test-cgroup-freezer.c | 43 +++++++++++++++++++
src/test/test-cgroup-mask.c | 3 +- src/test/test-cgroup-mask.c | 3 +-
.../fuzz-unit-file/directives-all.service | 2 + .../fuzz-unit-file/directives-all.service | 2 +
19 files changed, 157 insertions(+), 2 deletions(-) 21 files changed, 164 insertions(+), 1 deletion(-)
create mode 100644 src/test/test-cgroup-freezer.c create mode 100644 src/test/test-cgroup-freezer.c
diff --git a/meson.build b/meson.build
index 614013b..8712bdb 100644
--- a/meson.build
+++ b/meson.build
@@ -1582,6 +1582,7 @@ foreach term : ['analyze',
'efi',
'environment-d',
'firstboot',
+ 'freezer-cgv1',
'gshadow',
'hibernate',
'hostnamed',
@@ -2855,6 +2856,7 @@ foreach tuple : [
['standalone-binaries', get_option('standalone-binaries')],
['coverage', get_option('b_coverage')],
['cpuset-cgv1'],
+ ['freezer-cgv1'],
]
if tuple.length() >= 2
diff --git a/meson_options.txt b/meson_options.txt
index 5fda5d9..b61d99d 100644
--- a/meson_options.txt
+++ b/meson_options.txt
@@ -517,3 +517,6 @@ option('bpf-framework', type : 'feature', deprecated : { 'true' : 'enabled', 'fa
option('cpuset-cgv1', type : 'boolean', value : 'true',
description : 'enable cgroup v1 cpuset support')
+
+option('freezer-cgv1', type : 'boolean', value : 'true',
+ description : 'enable cgroup v1 freezer support')
diff --git a/src/basic/cgroup-util.c b/src/basic/cgroup-util.c diff --git a/src/basic/cgroup-util.c b/src/basic/cgroup-util.c
index abd1f91..3e60488 100644 index abd1f91..3e60488 100644
--- a/src/basic/cgroup-util.c --- a/src/basic/cgroup-util.c
@ -40,7 +73,7 @@ index abd1f91..3e60488 100644
[CGROUP_CONTROLLER_BPF_DEVICES] = "bpf-devices", [CGROUP_CONTROLLER_BPF_DEVICES] = "bpf-devices",
[CGROUP_CONTROLLER_BPF_FOREIGN] = "bpf-foreign", [CGROUP_CONTROLLER_BPF_FOREIGN] = "bpf-foreign",
diff --git a/src/basic/cgroup-util.h b/src/basic/cgroup-util.h diff --git a/src/basic/cgroup-util.h b/src/basic/cgroup-util.h
index 99be6b8..eb7ace5 100644 index dd3df28..4389cce 100644
--- a/src/basic/cgroup-util.h --- a/src/basic/cgroup-util.h
+++ b/src/basic/cgroup-util.h +++ b/src/basic/cgroup-util.h
@@ -29,6 +29,7 @@ typedef enum CGroupController { @@ -29,6 +29,7 @@ typedef enum CGroupController {
@ -59,15 +92,16 @@ index 99be6b8..eb7ace5 100644
CGROUP_MASK_BPF_FIREWALL = CGROUP_CONTROLLER_TO_MASK(CGROUP_CONTROLLER_BPF_FIREWALL), CGROUP_MASK_BPF_FIREWALL = CGROUP_CONTROLLER_TO_MASK(CGROUP_CONTROLLER_BPF_FIREWALL),
CGROUP_MASK_BPF_DEVICES = CGROUP_CONTROLLER_TO_MASK(CGROUP_CONTROLLER_BPF_DEVICES), CGROUP_MASK_BPF_DEVICES = CGROUP_CONTROLLER_TO_MASK(CGROUP_CONTROLLER_BPF_DEVICES),
CGROUP_MASK_BPF_FOREIGN = CGROUP_CONTROLLER_TO_MASK(CGROUP_CONTROLLER_BPF_FOREIGN), CGROUP_MASK_BPF_FOREIGN = CGROUP_CONTROLLER_TO_MASK(CGROUP_CONTROLLER_BPF_FOREIGN),
@@ -64,7 +66,7 @@ typedef enum CGroupMask { @@ -67,6 +69,9 @@ typedef enum CGroupMask {
CGROUP_MASK_BPF_RESTRICT_NETWORK_INTERFACES = CGROUP_CONTROLLER_TO_MASK(CGROUP_CONTROLLER_BPF_RESTRICT_NETWORK_INTERFACES), CGROUP_MASK_V1 = CGROUP_MASK_CPU|CGROUP_MASK_CPUACCT|CGROUP_MASK_BLKIO|CGROUP_MASK_MEMORY|CGROUP_MASK_DEVICES|CGROUP_MASK_PIDS
#if ENABLE_CPUSET_CGV1
| CGROUP_MASK_CPUSET
+#endif
+#if ENABLE_FREEZER_CGV1
+ | CGROUP_MASK_FREEZER
#endif
,
/* All real cgroup v1 controllers */
- CGROUP_MASK_V1 = CGROUP_MASK_CPU|CGROUP_MASK_CPUACCT|CGROUP_MASK_BLKIO|CGROUP_MASK_MEMORY|CGROUP_MASK_CPUSET|CGROUP_MASK_DEVICES|CGROUP_MASK_PIDS,
+ CGROUP_MASK_V1 = CGROUP_MASK_CPU|CGROUP_MASK_CPUACCT|CGROUP_MASK_BLKIO|CGROUP_MASK_MEMORY|CGROUP_MASK_CPUSET|CGROUP_MASK_FREEZER|CGROUP_MASK_DEVICES|CGROUP_MASK_PIDS,
/* All real cgroup v2 controllers */
CGROUP_MASK_V2 = CGROUP_MASK_CPU|CGROUP_MASK_CPUSET2|CGROUP_MASK_IO|CGROUP_MASK_MEMORY|CGROUP_MASK_PIDS,
diff --git a/src/core/cgroup.c b/src/core/cgroup.c diff --git a/src/core/cgroup.c b/src/core/cgroup.c
index cd1e97d..3e47f76 100644 index cd1e97d..3e47f76 100644
--- a/src/core/cgroup.c --- a/src/core/cgroup.c
@ -314,7 +348,7 @@ index de3f536..96b0a11 100644
{ "Manager", "DefaultTasksMax", config_parse_tasks_max, 0, &arg_defaults.tasks_max }, { "Manager", "DefaultTasksMax", config_parse_tasks_max, 0, &arg_defaults.tasks_max },
{ "Manager", "DefaultMemoryPressureThresholdSec", config_parse_sec, 0, &arg_defaults.memory_pressure_threshold_usec }, { "Manager", "DefaultMemoryPressureThresholdSec", config_parse_sec, 0, &arg_defaults.memory_pressure_threshold_usec },
diff --git a/src/core/manager.c b/src/core/manager.c diff --git a/src/core/manager.c b/src/core/manager.c
index 03508c7..3d14ea1 100644 index ef22fed..b29d4e1 100644
--- a/src/core/manager.c --- a/src/core/manager.c
+++ b/src/core/manager.c +++ b/src/core/manager.c
@@ -4193,6 +4193,7 @@ int manager_set_unit_defaults(Manager *m, const UnitDefaults *defaults) { @@ -4193,6 +4193,7 @@ int manager_set_unit_defaults(Manager *m, const UnitDefaults *defaults) {
@ -496,5 +530,5 @@ index 0e953f2..123c98e 100644
GuessMainPID= GuessMainPID=
IOAccounting= IOAccounting=
-- --
2.33.0 2.41.0

View File

@ -25,7 +25,7 @@
Name: systemd Name: systemd
Url: https://www.freedesktop.org/wiki/Software/systemd Url: https://www.freedesktop.org/wiki/Software/systemd
Version: 255 Version: 255
Release: 2 Release: 3
License: MIT and LGPLv2+ and GPLv2+ License: MIT and LGPLv2+ and GPLv2+
Summary: System and Service Manager Summary: System and Service Manager
@ -292,6 +292,9 @@ Systemd PAM module registers the session with systemd-logind.
%prep %prep
%autosetup -n %{name}-%{version} -p1 -Sgit %autosetup -n %{name}-%{version} -p1 -Sgit
%ifnarch sw_64
%patch 9036 -R -p1
%endif
%build %build
@ -1627,6 +1630,10 @@ fi
%{_libdir}/security/pam_systemd_loadkey.so %{_libdir}/security/pam_systemd_loadkey.so
%changelog %changelog
* Wed Feb 28 2024 huyubiao <huyubiao@huawei.com> - 255-3
- 1.add cpuset-cgv1 and freezer-cgv1 macros and enabled by default
2.add missing sw_64 macro in prep phase
* Sun Feb 18 2024 huyubiao <huyubiao@huawei.com> - 255-2 * Sun Feb 18 2024 huyubiao <huyubiao@huawei.com> - 255-2
- allow underscore in hostname - allow underscore in hostname