Re: [PATCH] cgroup/cpuset: Adjust exception handling in generate_sched_domains()

From: Markus Elfring
Date: Mon Jan 01 2024 - 03:58:15 EST


>> Two resource allocation failures triggered further actions
>> over the label “done” so far.
>>
>> * Jump to the statement “ndoms = 1;” in three cases directly
>>    by using the label “set_ndoms” instead.
>>
>> * Delete an assignment for the variable “ndoms” in one if branch.

>> ---
>>   kernel/cgroup/cpuset.c | 8 ++++----
>>   1 file changed, 4 insertions(+), 4 deletions(-)

>> @@ -973,10 +973,9 @@ static int generate_sched_domains(cpumask_var_t **domains,
>>
>>       /* Special case for the 99% of systems with one, full, sched domain */
>>       if (root_load_balance && !top_cpuset.nr_subparts) {
>> -        ndoms = 1;
>>           doms = alloc_sched_domains(ndoms);
>>           if (!doms)
>> -            goto done;
>> +            goto set_ndoms;
>>
>>           dattr = kmalloc(sizeof(struct sched_domain_attr), GFP_KERNEL);
>>           if (dattr) {

>> @@ -1123,6 +1122,7 @@ static int generate_sched_domains(cpumask_var_t **domains,
>>        * See comments in partition_sched_domains().
>>        */
>>       if (doms == NULL)
>> +set_ndoms:
>>           ndoms = 1;
>>
>>       *domains    = doms;

> Please clarify what this patch is for. Is it just a cleanup with no functional changes or is there a bug that is being fixed?

The development opinions might vary for the presented transformation.
I suggest to reconsider the number of relevant variable assignments here.
Would you categorise an extra statement still as a desirable implementation detail?

Regards,
Markus