Re: [PATCH -next] cgroup/cpuset: Statically initialize more members of top_cpuset
From: xiujianfeng
Date: Tue Apr 23 2024 - 20:57:12 EST
On 2024/4/24 3: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.
Oops, that's bad, I'm sorry for that!
>
>> .partition_root_state = PRS_ROOT,
>> + .relax_domain_level = -1,
>> .remote_sibling = LIST_HEAD_INIT(top_cpuset.remote_sibling),
>> };
>> @@ -4309,8 +4310,6 @@ int __init cpuset_init(void)
>> nodes_setall(top_cpuset.effective_mems);
>> fmeter_init(&top_cpuset.fmeter);
>> - set_bit(CS_SCHED_LOAD_BALANCE, &top_cpuset.flags);
>> - top_cpuset.relax_domain_level = -1;
>> INIT_LIST_HEAD(&remote_children);
>> BUG_ON(!alloc_cpumask_var(&cpus_attach, GFP_KERNEL));
>
> Kind regards,
> Klara Modin