[PATCH v1.1] tests: Verify inheritance of cpu affinity
Adhemerval Zanella Netto
adhemerval.zanella@linaro.org
Thu Jan 9 14:17:52 GMT 2025
On 09/01/25 00:15, Siddhesh Poyarekar wrote:
> On 2025-01-07 17:54, Adhemerval Zanella Netto wrote:
>>
>>
>> On 07/01/25 19:01, Siddhesh Poyarekar wrote:
>>> On 2025-01-07 15:51, Adhemerval Zanella Netto wrote:
>>>>> + /* Less CPUS for the first level, if that's possible. */
>>>>> + if (entry && cpus > 1)
>>>>> + cpus--;
>>>>
>>>> I think this will always fail on CPUs with one core (there are still
>>>> some for non-usual architectures).
>>>>
>>>
>>> For single CPU systems this should end up having the same mask for the first and second level tests, which shouldn't actually cause a failure. I admittedly haven't tested this though; I'll try and get a box to confirm.
>>
>> I meant that with only cpu, cnpus will be zero and the test
>>
>> if (CPU_COUNT_S (param->size, param->set) == 0)
>> FAIL_EXIT1 ("Failed to add any CPUs to the affinity set\n");
>>
>> will fail because no cpu will be added.
>>
>
> OK I just tested this on a single core box and it worked correctly. nproc returns 1 for a single cpu, which results in the single CPU0 being set in both the cpusets in the test:
>
> $ nproc
> 1
> $ cat misc/tst-sched-affinity-inheritance.test-result
> PASS: misc/tst-sched-affinity-inheritance
> original exit status 0
> $ cat misc/tst-sched-affinity-inheritance.out
> 86756:86756 Start test run
> 86756:86756 do_one_test: fork
> 86757:86757 do_one_test: fork
> 86758:86758 child
> 86757:86757 do_one_test: thread
> 86757:86759 child
> 86756:86756 do_one_test: thread
> 86756:86760 do_one_test: fork
> 86761:86761 child
> 86756:86760 do_one_test: thread
> 86756:86762 child
> $ cat nptl/tst-pthread-affinity-inheritance.test-result
> PASS: nptl/tst-pthread-affinity-inheritance
> original exit status 0
> $ cat nptl/tst-pthread-affinity-inheritance.out
> 142993:142993 Start test run
> 142993:142993 do_one_test: fork
> 142994:142994 do_one_test: fork
> 142995:142995 child
> 142994:142994 do_one_test: thread
> 142994:142996 child
> 142993:142993 do_one_test: thread
> 142993:142997 do_one_test: fork
> 142998:142998 child
> 142993:142997 do_one_test: thread
> 142993:142999 child
Fair enough, I now notice the decrement is done only positive. LGTM then.
More information about the Libc-alpha
mailing list