Re: [PATCH v2] sched/core: Use empty mask to reset cpumasks in sched_setaffinity()

From: Waiman Long
Date: Thu Aug 03 2023 - 12:03:53 EST



On 7/25/23 09:07, kernel test robot wrote:

Hello,

kernel test robot noticed "kernel-selftests.vDSO.vdso_test_correctness.fail" on:

commit: 8bd21fae1e37284f0f78fa42fb4d20a6cadfa68a ("[PATCH v2] sched/core: Use empty mask to reset cpumasks in sched_setaffinity()")
url: https://github.com/intel-lab-lkp/linux/commits/Waiman-Long/sched-core-Use-empty-mask-to-reset-cpumasks-in-sched_setaffinity/20230718-194823
base: https://git.kernel.org/cgit/linux/kernel/git/tip/tip.git 2ae2fb98b77339277a2c2f18dfec605dfd8dd321
patch link: https://lore.kernel.org/all/20230717180243.3607603-1-longman@xxxxxxxxxx/
patch subject: [PATCH v2] sched/core: Use empty mask to reset cpumasks in sched_setaffinity()

in testcase: kernel-selftests
version: kernel-selftests-x86_64-60acb023-1_20230329
with following parameters:

group: group-03



compiler: gcc-12
test machine: 36 threads 1 sockets Intel(R) Core(TM) i9-10980XE CPU @ 3.00GHz (Cascade Lake) with 32G memory

(please refer to attached dmesg/kmsg for entire log/backtrace)
# [OK] CPU 34: syscall: cpu 34, node 0 vdso: cpu 34, node 0 vsyscall: cpu 34, node 0
# [OK] CPU 35: syscall: cpu 35, node 0 vdso: cpu 35, node 0 vsyscall: cpu 35, node 0
# [FAIL] CPU 36: syscall: cpu 35, node 0 vdso: cpu 35, node 0 vsyscall: cpu 35, node 0
not ok 6 selftests: vDSO: vdso_test_correctness # exit=1

I have figured out what this fail. The vdso_test_correctness.c test calls sched_setaffinity() from cpu 0 and up until it hits an error return. There are 36 CPUs in the test system and once the CPU number hit 36, the cpumask_empty() test in sched_setaffinity() returns true causing a non-error return.

It seems like I need to always return an error code to not break existing test program, but perhaps with a different error code to indicate some action is done.

Cheers,
Longman