Re: [PATCH -next] cgroup/cpuset: Statically initialize more members of top_cpuset

From: Klara Modin
Date: Tue Apr 23 2024 - 15:59:30 EST


On 2024-04-23 21:50, Waiman Long wrote:

On 4/23/24 15:21, Klara Modin wrote:
Hi,

On 2024-04-20 11:46, Xiu Jianfeng wrote:
Initializing top_cpuset.relax_domain_level and setting
CS_SCHED_LOAD_BALANCE to top_cpuset.flags in cpuset_init() could be
completed at the time of top_cpuset definition by compiler.

Signed-off-by: Xiu Jianfeng <xiujianfeng@xxxxxxxxxx>
---
  kernel/cgroup/cpuset.c | 5 ++---
  1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/kernel/cgroup/cpuset.c b/kernel/cgroup/cpuset.c
index d8d3439eda4e..e70008a1d86a 100644
--- a/kernel/cgroup/cpuset.c
+++ b/kernel/cgroup/cpuset.c
@@ -369,8 +369,9 @@ static inline void notify_partition_change(struct cpuset *cs, int old_prs)
    static struct cpuset top_cpuset = {
      .flags = ((1 << CS_ONLINE) | (1 << CS_CPU_EXCLUSIVE) |
-          (1 << CS_MEM_EXCLUSIVE)),
+          (1 << CS_MEM_EXCLUSIVE) | (1 < CS_SCHED_LOAD_BALANCE)),

You dropped a '<' for the bitwise shift, this causes bad cpu utilization for me.

Oh, now load_balancing is disable by default in the root cgroup. That is bad. Will post a patch to fix it.

Thanks,
Longman

I attached one in my previous message, though I'm still very new at this and may have missed something.

Regards,
Klara Modin