* [LTP] [PATCH] cpuset_hotplug_test/cpuset_hotplug: Fix bug for obtaining task_cpus value in root_cpu_hotplug_test @ 2021-04-06 9:27 Zou Wei 2021-04-27 1:35 ` Samuel Zou 0 siblings, 1 reply; 8+ messages in thread From: Zou Wei @ 2021-04-06 9:27 UTC (permalink / raw) To: ltp -------------------------- 1. The method of obtaining $task_cpus from root_cpu_hotplug_test is incorrect, because the value of Cpus_allowed_list is related to /sys/devices/system/cpu/possible and /sys/devices/system/cpu/isolated. 2. If isolcpus is configured in cmdline, the value of Cpus_allowed_list is equal to /sys/devices/system/cpu/possible minus /sys/devices/system/cpu/isolated. In this case, $task_cpus is inconsistent with $expect_task_cpus, test will be failed. 3. Need to change the method of obtaining $task_cpu from /sys/devices/system/cpu/present. 4. The description of cpu_present_mask: Bitmap of CPUs currently present in the system. Not all of them may be online. When physical hotplug is processed by the relevant subsystem (e.g ACPI) can change and new bit either be added or removed from the map depending on the event is hot-add/hot-remove. There are currently no locking rules as of now. Typical usage is to init topology during boot, at which time hotplug is disabled. Signed-off-by: Zou Wei <zou_wei@huawei.com> --- .../controllers/cpuset/cpuset_hotplug_test/cpuset_hotplug_test.sh | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/testcases/kernel/controllers/cpuset/cpuset_hotplug_test/cpuset_hotplug_test.sh b/testcases/kernel/controllers/cpuset/cpuset_hotplug_test/cpuset_hotplug_test.sh index 155e536..2c6993a 100755 --- a/testcases/kernel/controllers/cpuset/cpuset_hotplug_test/cpuset_hotplug_test.sh +++ b/testcases/kernel/controllers/cpuset/cpuset_hotplug_test/cpuset_hotplug_test.sh @@ -93,8 +93,7 @@ root_cpu_hotplug_test() root_cpus="`cat $CPUSET/cpuset.cpus`" - task_cpus="`cat /proc/$tst_pid/status | grep Cpus_allowed_list`" - task_cpus="`echo $task_cpus | sed -e 's/Cpus_allowed_list: //'`" + task_cpus="`cat /sys/devices/system/cpu/present`" check_result "$root_cpus" "$expect_cpus" ret=$? -- 2.6.2 ^ permalink raw reply related [flat|nested] 8+ messages in thread
* [LTP] [PATCH] cpuset_hotplug_test/cpuset_hotplug: Fix bug for obtaining task_cpus value in root_cpu_hotplug_test 2021-04-06 9:27 [LTP] [PATCH] cpuset_hotplug_test/cpuset_hotplug: Fix bug for obtaining task_cpus value in root_cpu_hotplug_test Zou Wei @ 2021-04-27 1:35 ` Samuel Zou 2021-06-17 11:07 ` xuyang2018.jy 0 siblings, 1 reply; 8+ messages in thread From: Samuel Zou @ 2021-04-27 1:35 UTC (permalink / raw) To: ltp Hi, A friendly reminder for the two patchs in: https://patchwork.ozlabs.org/project/ltp/patch/1617707717-63693-1-git-send-email-zou_wei@huawei.com/ https://patchwork.ozlabs.org/project/ltp/patch/1617701249-62196-1-git-send-email-zou_wei@huawei.com/ Can someone please review the patchs, comment, and if appropriate commit them? Regards, Zou Wei On 2021/4/6 17:27, Zou Wei wrote: > -------------------------- > > 1. The method of obtaining $task_cpus from root_cpu_hotplug_test is > incorrect, because the value of Cpus_allowed_list is related > to /sys/devices/system/cpu/possible and > /sys/devices/system/cpu/isolated. > > 2. If isolcpus is configured in cmdline, the value of > Cpus_allowed_list is equal to /sys/devices/system/cpu/possible minus > /sys/devices/system/cpu/isolated. In this case, $task_cpus is inconsistent > with $expect_task_cpus, test will be failed. > > 3. Need to change the method of obtaining $task_cpu > from /sys/devices/system/cpu/present. > > 4. The description of cpu_present_mask: > Bitmap of CPUs currently present in the system. > Not all of them may be online. When physical hotplug is processed > by the relevant subsystem (e.g ACPI) can change and new bit either be > added or removed from the map depending on the event is > hot-add/hot-remove. There are currently no locking rules as of now. > Typical usage is to init topology during boot, > at which time hotplug is disabled. > > Signed-off-by: Zou Wei <zou_wei@huawei.com> > --- > .../controllers/cpuset/cpuset_hotplug_test/cpuset_hotplug_test.sh | 3 +-- > 1 file changed, 1 insertion(+), 2 deletions(-) > > diff --git a/testcases/kernel/controllers/cpuset/cpuset_hotplug_test/cpuset_hotplug_test.sh b/testcases/kernel/controllers/cpuset/cpuset_hotplug_test/cpuset_hotplug_test.sh > index 155e536..2c6993a 100755 > --- a/testcases/kernel/controllers/cpuset/cpuset_hotplug_test/cpuset_hotplug_test.sh > +++ b/testcases/kernel/controllers/cpuset/cpuset_hotplug_test/cpuset_hotplug_test.sh > @@ -93,8 +93,7 @@ root_cpu_hotplug_test() > > root_cpus="`cat $CPUSET/cpuset.cpus`" > > - task_cpus="`cat /proc/$tst_pid/status | grep Cpus_allowed_list`" > - task_cpus="`echo $task_cpus | sed -e 's/Cpus_allowed_list: //'`" > + task_cpus="`cat /sys/devices/system/cpu/present`" > > check_result "$root_cpus" "$expect_cpus" > ret=$? > ^ permalink raw reply [flat|nested] 8+ messages in thread
* [LTP] [PATCH] cpuset_hotplug_test/cpuset_hotplug: Fix bug for obtaining task_cpus value in root_cpu_hotplug_test 2021-04-27 1:35 ` Samuel Zou @ 2021-06-17 11:07 ` xuyang2018.jy 2021-06-21 8:56 ` xuyang2018.jy 0 siblings, 1 reply; 8+ messages in thread From: xuyang2018.jy @ 2021-06-17 11:07 UTC (permalink / raw) To: ltp Hi Samuel, Zou > Hi, > > A friendly reminder for the two patchs in: > > https://patchwork.ozlabs.org/project/ltp/patch/1617707717-63693-1-git-send-email-zou_wei@huawei.com/ > > > https://patchwork.ozlabs.org/project/ltp/patch/1617701249-62196-1-git-send-email-zou_wei@huawei.com/ > > > Can someone please review the patchs, comment, and if appropriate commit > them? > > Regards, > Zou Wei > > On 2021/4/6 17:27, Zou Wei wrote: >> -------------------------- >> >> 1. The method of obtaining $task_cpus from root_cpu_hotplug_test is >> incorrect, because the value of Cpus_allowed_list is related >> to /sys/devices/system/cpu/possible and >> /sys/devices/system/cpu/isolated. >> >> 2. If isolcpus is configured in cmdline, the value of >> Cpus_allowed_list is equal to /sys/devices/system/cpu/possible minus >> /sys/devices/system/cpu/isolated. In this case, $task_cpus is >> inconsistent >> with $expect_task_cpus, test will be failed. >> >> 3. Need to change the method of obtaining $task_cpu >> from /sys/devices/system/cpu/present. Thanks for your patch, I also met the same problem when /sys/devices/system/cpu/possible is not equal to/sys/devices/system/cpu/possible/present . Cpus_allowed_list: 0-511 but my present cpu is 0-103 Then I use possible_cpus==104 in /etc/defaut/grub, cpu_hotplug case then pass. According to kernel documentation[1] and kernel fs/proc/array code[2](It just print cpu mask instead of present cpu), So using /sys/devices/system/cpu/present is right instead of getting cpu_allow_list. possible: cpus that have been allocated resources and can be brought online if they are present. present: cpus that have been identified as being present in the system. Reviewed-by: Yang Xu <xuyang2018.jy@fujitsu.com> [1]https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/ABI/testing/sysfs-devices-system-cpu [2]https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/fs/proc/array.c#n418 ps: Also find a kernel documentation problem and have sent a patch to remove non-existed cpu-hotplug.txt in admin-guide/cputopology.rst. Best Regards Yang Xu >> >> 4. The description of cpu_present_mask: >> Bitmap of CPUs currently present in the system. >> Not all of them may be online. When physical hotplug is processed >> by the relevant subsystem (e.g ACPI) can change and new bit either be >> added or removed from the map depending on the event is >> hot-add/hot-remove. There are currently no locking rules as of now. >> Typical usage is to init topology during boot, >> at which time hotplug is disabled. >> >> Signed-off-by: Zou Wei <zou_wei@huawei.com> >> --- >> .../controllers/cpuset/cpuset_hotplug_test/cpuset_hotplug_test.sh | 3 +-- >> 1 file changed, 1 insertion(+), 2 deletions(-) >> >> diff --git >> a/testcases/kernel/controllers/cpuset/cpuset_hotplug_test/cpuset_hotplug_test.sh >> b/testcases/kernel/controllers/cpuset/cpuset_hotplug_test/cpuset_hotplug_test.sh >> >> index 155e536..2c6993a 100755 >> --- >> a/testcases/kernel/controllers/cpuset/cpuset_hotplug_test/cpuset_hotplug_test.sh >> >> +++ >> b/testcases/kernel/controllers/cpuset/cpuset_hotplug_test/cpuset_hotplug_test.sh >> >> @@ -93,8 +93,7 @@ root_cpu_hotplug_test() >> root_cpus="`cat $CPUSET/cpuset.cpus`" >> - task_cpus="`cat /proc/$tst_pid/status | grep Cpus_allowed_list`" >> - task_cpus="`echo $task_cpus | sed -e 's/Cpus_allowed_list: //'`" >> + task_cpus="`cat /sys/devices/system/cpu/present`" >> check_result "$root_cpus" "$expect_cpus" >> ret=$? >> > ^ permalink raw reply [flat|nested] 8+ messages in thread
* [LTP] [PATCH] cpuset_hotplug_test/cpuset_hotplug: Fix bug for obtaining task_cpus value in root_cpu_hotplug_test 2021-06-17 11:07 ` xuyang2018.jy @ 2021-06-21 8:56 ` xuyang2018.jy 2021-06-21 9:18 ` Samuel Zou 0 siblings, 1 reply; 8+ messages in thread From: xuyang2018.jy @ 2021-06-21 8:56 UTC (permalink / raw) To: ltp Hi Zou It looks like this patch also miss to get task_cpus value intgeneric_cpu_hotplug_test when expect cpu value is EMPTY. I can reproduce this easily by increasing the possible_cpus value in cmdline. Merge your patch, this case still fails as below: cpuset_hotplug 1 TINFO: CPUs are numbered continuously starting at 0 (0-3) cpuset_hotplug 1 TINFO: Nodes are numbered continuously starting at 0 (0-3) /opt/ltp/testcases/bin/cpuset_funcs.sh: line 179: 5676 Killed /bin/cat /dev/zero > /dev/null 2>&1 cpuset_hotplug 1 TPASS: Cpuset vs CPU hotplug test succeeded. /opt/ltp/testcases/bin/cpuset_funcs.sh: line 179: 5714 Killed /bin/cat /dev/zero > /dev/null 2>&1 cpuset_hotplug 3 TPASS: Cpuset vs CPU hotplug test succeeded. /opt/ltp/testcases/bin/cpuset_funcs.sh: line 179: 5750 Killed /bin/cat /dev/zero > /dev/null 2>&1 cpuset_hotplug 5 TPASS: Cpuset vs CPU hotplug test succeeded. cpuset_hotplug 7 TFAIL: task's cpu present list isn't expected(Result: 0-7, Expect: 0-3). /opt/ltp/testcases/bin/cpuset_funcs.sh: line 179: 5795 Killed /bin/cat /dev/zero > /dev/null 2>&1 /opt/ltp/testcases/bin/cpuset_funcs.sh: line 179: 5846 Killed /bin/cat /dev/zero > /dev/null 2>&1 cpuset_hotplug 9 TPASS: Cpuset vs CPU hotplug test succeeded. /opt/ltp/testcases/bin/cpuset_funcs.sh: line 179: 5894 Killed /bin/cat /dev/zero > /dev/null 2>&1 cpuset_hotplug 11 TPASS: Cpuset vs CPU hotplug test succeeded. Also since we have use present value, we shoud adjust output to match it. I modify this patch as below, What do you think about it? --- a/testcases/kernel/controllers/cpuset/cpuset_hotplug_test/cpuset_hotplug_test.sh +++ b/testcases/kernel/controllers/cpuset/cpuset_hotplug_test/cpuset_hotplug_test.sh @@ -93,9 +93,7 @@ root_cpu_hotplug_test() root_cpus="`cat $CPUSET/cpuset.cpus`" - task_cpus="`cat /proc/$tst_pid/status | grep Cpus_allowed_list`" - task_cpus="`echo $task_cpus | sed -e 's/Cpus_allowed_list: //'`" - + task_cpus="`cat /sys/devices/system/cpu/present`" check_result "$root_cpus" "$expect_cpus" ret=$? if [ $ret -eq 0 ] @@ -103,7 +101,7 @@ root_cpu_hotplug_test() check_result "$task_cpus" "$expect_task_cpus" ret=$? if [ $ret -ne 0 ]; then - tst_resm TFAIL "task's allowed list isn't expected.(Result: $task_cpus, Expect: $expect_task_cpus)" + tst_resm TFAIL "task's present list isn't expected.(Result: $task_cpus, Expect: $expect_task_cpus)" fi else tst_resm TFAIL "root group's cpus isn't expected(Result: $root_cpus, Expect: $expect_cpus)." @@ -166,7 +164,6 @@ general_cpu_hotplug_test() sleep 1 cpus="`cat $path/cpuset.cpus`" - task_cpus="`cat /proc/$tst_pid/status | grep Cpus_allowed_list`" task_cpus="`echo $task_cpus | sed -e 's/Cpus_allowed_list: //'`" @@ -186,6 +183,7 @@ general_cpu_hotplug_test() /bin/kill -s SIGKILL $tst_pid return 1 fi + task_cpus="`cat /sys/devices/system/cpu/present`" fi check_result "$cpus" "$expect_cpus" @@ -194,7 +192,7 @@ general_cpu_hotplug_test() check_result $task_cpus $expect_task_cpus ret=$? if [ $ret -ne 0 ]; then - tst_resm TFAIL "task's cpu allowed list isn't expected(Result: $task_cpus, Expect: $expect_task_cpus)." + tst_resm TFAIL "task's cpu present list isn't expected(Result: $task_cpus, Expect: $expect_task_cpus)." fi else if [ "$cpus" = "" ]; then Best Regards Yang XU > Hi Samuel, Zou >> Hi, >> >> A friendly reminder for the two patchs in: >> >> https://patchwork.ozlabs.org/project/ltp/patch/1617707717-63693-1-git-send-email-zou_wei@huawei.com/ >> >> >> >> https://patchwork.ozlabs.org/project/ltp/patch/1617701249-62196-1-git-send-email-zou_wei@huawei.com/ >> >> >> >> Can someone please review the patchs, comment, and if appropriate commit >> them? >> >> Regards, >> Zou Wei >> >> On 2021/4/6 17:27, Zou Wei wrote: >>> -------------------------- >>> >>> 1. The method of obtaining $task_cpus from root_cpu_hotplug_test is >>> incorrect, because the value of Cpus_allowed_list is related >>> to /sys/devices/system/cpu/possible and >>> /sys/devices/system/cpu/isolated. >>> >>> 2. If isolcpus is configured in cmdline, the value of >>> Cpus_allowed_list is equal to /sys/devices/system/cpu/possible minus >>> /sys/devices/system/cpu/isolated. In this case, $task_cpus is >>> inconsistent >>> with $expect_task_cpus, test will be failed. >>> >>> 3. Need to change the method of obtaining $task_cpu >>> from /sys/devices/system/cpu/present. > Thanks for your patch, I also met the same problem when > /sys/devices/system/cpu/possible is not equal > to/sys/devices/system/cpu/possible/present . > Cpus_allowed_list: 0-511 > but my present cpu is 0-103 > > Then I use possible_cpus==104 in /etc/defaut/grub, cpu_hotplug case then > pass. > > According to kernel documentation[1] and kernel fs/proc/array code[2](It > just print cpu mask instead of present cpu), So using > /sys/devices/system/cpu/present is right instead of getting cpu_allow_list. > > possible: cpus that have been allocated resources and can be > brought online if they are present. > > present: cpus that have been identified as being present in > the system. > > > Reviewed-by: Yang Xu <xuyang2018.jy@fujitsu.com> > > [1]https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/ABI/testing/sysfs-devices-system-cpu > > [2]https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/fs/proc/array.c#n418 > > > ps: > Also find a kernel documentation problem and have sent a patch to remove > non-existed cpu-hotplug.txt in admin-guide/cputopology.rst. > > > Best Regards > Yang Xu >>> >>> 4. The description of cpu_present_mask: >>> Bitmap of CPUs currently present in the system. >>> Not all of them may be online. When physical hotplug is processed >>> by the relevant subsystem (e.g ACPI) can change and new bit either be >>> added or removed from the map depending on the event is >>> hot-add/hot-remove. There are currently no locking rules as of now. >>> Typical usage is to init topology during boot, >>> at which time hotplug is disabled. >>> >>> Signed-off-by: Zou Wei <zou_wei@huawei.com> >>> --- >>> .../controllers/cpuset/cpuset_hotplug_test/cpuset_hotplug_test.sh | 3 >>> +-- >>> 1 file changed, 1 insertion(+), 2 deletions(-) >>> >>> diff --git >>> a/testcases/kernel/controllers/cpuset/cpuset_hotplug_test/cpuset_hotplug_test.sh >>> >>> b/testcases/kernel/controllers/cpuset/cpuset_hotplug_test/cpuset_hotplug_test.sh >>> >>> >>> index 155e536..2c6993a 100755 >>> --- >>> a/testcases/kernel/controllers/cpuset/cpuset_hotplug_test/cpuset_hotplug_test.sh >>> >>> >>> +++ >>> b/testcases/kernel/controllers/cpuset/cpuset_hotplug_test/cpuset_hotplug_test.sh >>> >>> >>> @@ -93,8 +93,7 @@ root_cpu_hotplug_test() >>> root_cpus="`cat $CPUSET/cpuset.cpus`" >>> - task_cpus="`cat /proc/$tst_pid/status | grep Cpus_allowed_list`" >>> - task_cpus="`echo $task_cpus | sed -e 's/Cpus_allowed_list: //'`" >>> + task_cpus="`cat /sys/devices/system/cpu/present`" >>> check_result "$root_cpus" "$expect_cpus" >>> ret=$? >>> >> ^ permalink raw reply [flat|nested] 8+ messages in thread
* [LTP] [PATCH] cpuset_hotplug_test/cpuset_hotplug: Fix bug for obtaining task_cpus value in root_cpu_hotplug_test 2021-06-21 8:56 ` xuyang2018.jy @ 2021-06-21 9:18 ` Samuel Zou 2021-06-21 9:53 ` xuyang2018.jy 0 siblings, 1 reply; 8+ messages in thread From: Samuel Zou @ 2021-06-21 9:18 UTC (permalink / raw) To: ltp Hi Xu, You'are right, I miss to get task_cpus value in general_cpu_hotplug_test(). Thanks for your review and agree with your modification. On 2021/6/21 16:56, xuyang2018.jy@fujitsu.com wrote: > Hi Zou > > It looks like this patch also miss to get task_cpus value > intgeneric_cpu_hotplug_test when expect cpu value is EMPTY. > > I can reproduce this easily by increasing the possible_cpus value in > cmdline. Merge your patch, this case still fails as below: > cpuset_hotplug 1 TINFO: CPUs are numbered continuously starting at 0 (0-3) > cpuset_hotplug 1 TINFO: Nodes are numbered continuously starting at 0 (0-3) > /opt/ltp/testcases/bin/cpuset_funcs.sh: line 179: 5676 Killed > /bin/cat /dev/zero > /dev/null 2>&1 > cpuset_hotplug 1 TPASS: Cpuset vs CPU hotplug test succeeded. > /opt/ltp/testcases/bin/cpuset_funcs.sh: line 179: 5714 Killed > /bin/cat /dev/zero > /dev/null 2>&1 > cpuset_hotplug 3 TPASS: Cpuset vs CPU hotplug test succeeded. > /opt/ltp/testcases/bin/cpuset_funcs.sh: line 179: 5750 Killed > /bin/cat /dev/zero > /dev/null 2>&1 > cpuset_hotplug 5 TPASS: Cpuset vs CPU hotplug test succeeded. > cpuset_hotplug 7 TFAIL: task's cpu present list isn't expected(Result: > 0-7, Expect: 0-3). > /opt/ltp/testcases/bin/cpuset_funcs.sh: line 179: 5795 Killed > /bin/cat /dev/zero > /dev/null 2>&1 > /opt/ltp/testcases/bin/cpuset_funcs.sh: line 179: 5846 Killed > /bin/cat /dev/zero > /dev/null 2>&1 > cpuset_hotplug 9 TPASS: Cpuset vs CPU hotplug test succeeded. > /opt/ltp/testcases/bin/cpuset_funcs.sh: line 179: 5894 Killed > /bin/cat /dev/zero > /dev/null 2>&1 > cpuset_hotplug 11 TPASS: Cpuset vs CPU hotplug test succeeded. > > > Also since we have use present value, we shoud adjust output to match > it. I modify this patch as below, What do you think about it? > > --- > a/testcases/kernel/controllers/cpuset/cpuset_hotplug_test/cpuset_hotplug_test.sh > +++ > b/testcases/kernel/controllers/cpuset/cpuset_hotplug_test/cpuset_hotplug_test.sh > @@ -93,9 +93,7 @@ root_cpu_hotplug_test() > > root_cpus="`cat $CPUSET/cpuset.cpus`" > > - task_cpus="`cat /proc/$tst_pid/status | grep Cpus_allowed_list`" > - task_cpus="`echo $task_cpus | sed -e 's/Cpus_allowed_list: //'`" > - > + task_cpus="`cat /sys/devices/system/cpu/present`" > check_result "$root_cpus" "$expect_cpus" > ret=$? > if [ $ret -eq 0 ] > @@ -103,7 +101,7 @@ root_cpu_hotplug_test() > check_result "$task_cpus" "$expect_task_cpus" > ret=$? > if [ $ret -ne 0 ]; then > - tst_resm TFAIL "task's allowed list isn't > expected.(Result: $task_cpus, Expect: $expect_task_cpus)" > + tst_resm TFAIL "task's present list isn't > expected.(Result: $task_cpus, Expect: $expect_task_cpus)" > fi > else > tst_resm TFAIL "root group's cpus isn't > expected(Result: $root_cpus, Expect: $expect_cpus)." > @@ -166,7 +164,6 @@ general_cpu_hotplug_test() > sleep 1 > > cpus="`cat $path/cpuset.cpus`" > - > task_cpus="`cat /proc/$tst_pid/status | grep Cpus_allowed_list`" > task_cpus="`echo $task_cpus | sed -e 's/Cpus_allowed_list: //'`" > > @@ -186,6 +183,7 @@ general_cpu_hotplug_test() > /bin/kill -s SIGKILL $tst_pid > return 1 > fi > + task_cpus="`cat /sys/devices/system/cpu/present`" > fi > > check_result "$cpus" "$expect_cpus" > @@ -194,7 +192,7 @@ general_cpu_hotplug_test() > check_result $task_cpus $expect_task_cpus > ret=$? > if [ $ret -ne 0 ]; then > - tst_resm TFAIL "task's cpu allowed list isn't > expected(Result: $task_cpus, Expect: $expect_task_cpus)." > + tst_resm TFAIL "task's cpu present list isn't > expected(Result: $task_cpus, Expect: $expect_task_cpus)." > fi > else > if [ "$cpus" = "" ]; then > > > Best Regards > Yang XU >> Hi Samuel, Zou >>> Hi, >>> >>> A friendly reminder for the two patchs in: >>> >>> https://patchwork.ozlabs.org/project/ltp/patch/1617707717-63693-1-git-send-email-zou_wei@huawei.com/ >>> >>> >>> >>> https://patchwork.ozlabs.org/project/ltp/patch/1617701249-62196-1-git-send-email-zou_wei@huawei.com/ >>> >>> >>> >>> Can someone please review the patchs, comment, and if appropriate commit >>> them? >>> >>> Regards, >>> Zou Wei >>> >>> On 2021/4/6 17:27, Zou Wei wrote: >>>> -------------------------- >>>> >>>> 1. The method of obtaining $task_cpus from root_cpu_hotplug_test is >>>> incorrect, because the value of Cpus_allowed_list is related >>>> to /sys/devices/system/cpu/possible and >>>> /sys/devices/system/cpu/isolated. >>>> >>>> 2. If isolcpus is configured in cmdline, the value of >>>> Cpus_allowed_list is equal to /sys/devices/system/cpu/possible minus >>>> /sys/devices/system/cpu/isolated. In this case, $task_cpus is >>>> inconsistent >>>> with $expect_task_cpus, test will be failed. >>>> >>>> 3. Need to change the method of obtaining $task_cpu >>>> from /sys/devices/system/cpu/present. >> Thanks for your patch, I also met the same problem when >> /sys/devices/system/cpu/possible is not equal >> to/sys/devices/system/cpu/possible/present . >> Cpus_allowed_list: 0-511 >> but my present cpu is 0-103 >> >> Then I use possible_cpus==104 in /etc/defaut/grub, cpu_hotplug case then >> pass. >> >> According to kernel documentation[1] and kernel fs/proc/array code[2](It >> just print cpu mask instead of present cpu), So using >> /sys/devices/system/cpu/present is right instead of getting cpu_allow_list. >> >> possible: cpus that have been allocated resources and can be >> brought online if they are present. >> >> present: cpus that have been identified as being present in >> the system. >> >> >> Reviewed-by: Yang Xu <xuyang2018.jy@fujitsu.com> >> >> [1]https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/ABI/testing/sysfs-devices-system-cpu >> >> [2]https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/fs/proc/array.c#n418 >> >> >> ps: >> Also find a kernel documentation problem and have sent a patch to remove >> non-existed cpu-hotplug.txt in admin-guide/cputopology.rst. >> >> >> Best Regards >> Yang Xu >>>> >>>> 4. The description of cpu_present_mask: >>>> Bitmap of CPUs currently present in the system. >>>> Not all of them may be online. When physical hotplug is processed >>>> by the relevant subsystem (e.g ACPI) can change and new bit either be >>>> added or removed from the map depending on the event is >>>> hot-add/hot-remove. There are currently no locking rules as of now. >>>> Typical usage is to init topology during boot, >>>> at which time hotplug is disabled. >>>> >>>> Signed-off-by: Zou Wei <zou_wei@huawei.com> >>>> --- >>>> .../controllers/cpuset/cpuset_hotplug_test/cpuset_hotplug_test.sh | 3 >>>> +-- >>>> 1 file changed, 1 insertion(+), 2 deletions(-) >>>> >>>> diff --git >>>> a/testcases/kernel/controllers/cpuset/cpuset_hotplug_test/cpuset_hotplug_test.sh >>>> >>>> b/testcases/kernel/controllers/cpuset/cpuset_hotplug_test/cpuset_hotplug_test.sh >>>> >>>> >>>> index 155e536..2c6993a 100755 >>>> --- >>>> a/testcases/kernel/controllers/cpuset/cpuset_hotplug_test/cpuset_hotplug_test.sh >>>> >>>> >>>> +++ >>>> b/testcases/kernel/controllers/cpuset/cpuset_hotplug_test/cpuset_hotplug_test.sh >>>> >>>> >>>> @@ -93,8 +93,7 @@ root_cpu_hotplug_test() >>>> root_cpus="`cat $CPUSET/cpuset.cpus`" >>>> - task_cpus="`cat /proc/$tst_pid/status | grep Cpus_allowed_list`" >>>> - task_cpus="`echo $task_cpus | sed -e 's/Cpus_allowed_list: //'`" >>>> + task_cpus="`cat /sys/devices/system/cpu/present`" >>>> check_result "$root_cpus" "$expect_cpus" >>>> ret=$? >>>> >>> ^ permalink raw reply [flat|nested] 8+ messages in thread
* [LTP] [PATCH] cpuset_hotplug_test/cpuset_hotplug: Fix bug for obtaining task_cpus value in root_cpu_hotplug_test 2021-06-21 9:18 ` Samuel Zou @ 2021-06-21 9:53 ` xuyang2018.jy 2021-06-21 10:33 ` Samuel Zou 0 siblings, 1 reply; 8+ messages in thread From: xuyang2018.jy @ 2021-06-21 9:53 UTC (permalink / raw) To: ltp Hi Zou Do you want to send a v2 patch? Or I modify this patch and push it directly. Best Regards Yang Xu > Hi Xu, > > You'are right, I miss to get task_cpus value in general_cpu_hotplug_test(). > Thanks for your review and agree with your modification. > > > On 2021/6/21 16:56, xuyang2018.jy@fujitsu.com wrote: >> Hi Zou >> >> It looks like this patch also miss to get task_cpus value >> intgeneric_cpu_hotplug_test when expect cpu value is EMPTY. >> >> I can reproduce this easily by increasing the possible_cpus value in >> cmdline. Merge your patch, this case still fails as below: >> cpuset_hotplug 1 TINFO: CPUs are numbered continuously starting at 0 >> (0-3) >> cpuset_hotplug 1 TINFO: Nodes are numbered continuously starting at 0 >> (0-3) >> /opt/ltp/testcases/bin/cpuset_funcs.sh: line 179: 5676 Killed >> /bin/cat /dev/zero > /dev/null 2>&1 >> cpuset_hotplug 1 TPASS: Cpuset vs CPU hotplug test succeeded. >> /opt/ltp/testcases/bin/cpuset_funcs.sh: line 179: 5714 Killed >> /bin/cat /dev/zero > /dev/null 2>&1 >> cpuset_hotplug 3 TPASS: Cpuset vs CPU hotplug test succeeded. >> /opt/ltp/testcases/bin/cpuset_funcs.sh: line 179: 5750 Killed >> /bin/cat /dev/zero > /dev/null 2>&1 >> cpuset_hotplug 5 TPASS: Cpuset vs CPU hotplug test succeeded. >> cpuset_hotplug 7 TFAIL: task's cpu present list isn't expected(Result: >> 0-7, Expect: 0-3). >> /opt/ltp/testcases/bin/cpuset_funcs.sh: line 179: 5795 Killed >> /bin/cat /dev/zero > /dev/null 2>&1 >> /opt/ltp/testcases/bin/cpuset_funcs.sh: line 179: 5846 Killed >> /bin/cat /dev/zero > /dev/null 2>&1 >> cpuset_hotplug 9 TPASS: Cpuset vs CPU hotplug test succeeded. >> /opt/ltp/testcases/bin/cpuset_funcs.sh: line 179: 5894 Killed >> /bin/cat /dev/zero > /dev/null 2>&1 >> cpuset_hotplug 11 TPASS: Cpuset vs CPU hotplug test succeeded. >> >> >> Also since we have use present value, we shoud adjust output to match >> it. I modify this patch as below, What do you think about it? >> >> --- >> a/testcases/kernel/controllers/cpuset/cpuset_hotplug_test/cpuset_hotplug_test.sh >> >> +++ >> b/testcases/kernel/controllers/cpuset/cpuset_hotplug_test/cpuset_hotplug_test.sh >> >> @@ -93,9 +93,7 @@ root_cpu_hotplug_test() >> >> root_cpus="`cat $CPUSET/cpuset.cpus`" >> >> - task_cpus="`cat /proc/$tst_pid/status | grep Cpus_allowed_list`" >> - task_cpus="`echo $task_cpus | sed -e 's/Cpus_allowed_list: //'`" >> - >> + task_cpus="`cat /sys/devices/system/cpu/present`" >> check_result "$root_cpus" "$expect_cpus" >> ret=$? >> if [ $ret -eq 0 ] >> @@ -103,7 +101,7 @@ root_cpu_hotplug_test() >> check_result "$task_cpus" "$expect_task_cpus" >> ret=$? >> if [ $ret -ne 0 ]; then >> - tst_resm TFAIL "task's allowed list isn't >> expected.(Result: $task_cpus, Expect: $expect_task_cpus)" >> + tst_resm TFAIL "task's present list isn't >> expected.(Result: $task_cpus, Expect: $expect_task_cpus)" >> fi >> else >> tst_resm TFAIL "root group's cpus isn't >> expected(Result: $root_cpus, Expect: $expect_cpus)." >> @@ -166,7 +164,6 @@ general_cpu_hotplug_test() >> sleep 1 >> >> cpus="`cat $path/cpuset.cpus`" >> - >> task_cpus="`cat /proc/$tst_pid/status | grep Cpus_allowed_list`" >> task_cpus="`echo $task_cpus | sed -e 's/Cpus_allowed_list: //'`" >> >> @@ -186,6 +183,7 @@ general_cpu_hotplug_test() >> /bin/kill -s SIGKILL $tst_pid >> return 1 >> fi >> + task_cpus="`cat /sys/devices/system/cpu/present`" >> fi >> >> check_result "$cpus" "$expect_cpus" >> @@ -194,7 +192,7 @@ general_cpu_hotplug_test() >> check_result $task_cpus $expect_task_cpus >> ret=$? >> if [ $ret -ne 0 ]; then >> - tst_resm TFAIL "task's cpu allowed list isn't >> expected(Result: $task_cpus, Expect: $expect_task_cpus)." >> + tst_resm TFAIL "task's cpu present list isn't >> expected(Result: $task_cpus, Expect: $expect_task_cpus)." >> fi >> else >> if [ "$cpus" = "" ]; then >> >> >> Best Regards >> Yang XU >>> Hi Samuel, Zou >>>> Hi, >>>> >>>> A friendly reminder for the two patchs in: >>>> >>>> https://patchwork.ozlabs.org/project/ltp/patch/1617707717-63693-1-git-send-email-zou_wei@huawei.com/ >>>> >>>> >>>> >>>> >>>> https://patchwork.ozlabs.org/project/ltp/patch/1617701249-62196-1-git-send-email-zou_wei@huawei.com/ >>>> >>>> >>>> >>>> >>>> Can someone please review the patchs, comment, and if appropriate >>>> commit >>>> them? >>>> >>>> Regards, >>>> Zou Wei >>>> >>>> On 2021/4/6 17:27, Zou Wei wrote: >>>>> -------------------------- >>>>> >>>>> 1. The method of obtaining $task_cpus from root_cpu_hotplug_test is >>>>> incorrect, because the value of Cpus_allowed_list is related >>>>> to /sys/devices/system/cpu/possible and >>>>> /sys/devices/system/cpu/isolated. >>>>> >>>>> 2. If isolcpus is configured in cmdline, the value of >>>>> Cpus_allowed_list is equal to /sys/devices/system/cpu/possible minus >>>>> /sys/devices/system/cpu/isolated. In this case, $task_cpus is >>>>> inconsistent >>>>> with $expect_task_cpus, test will be failed. >>>>> >>>>> 3. Need to change the method of obtaining $task_cpu >>>>> from /sys/devices/system/cpu/present. >>> Thanks for your patch, I also met the same problem when >>> /sys/devices/system/cpu/possible is not equal >>> to/sys/devices/system/cpu/possible/present . >>> Cpus_allowed_list: 0-511 >>> but my present cpu is 0-103 >>> >>> Then I use possible_cpus==104 in /etc/defaut/grub, cpu_hotplug case then >>> pass. >>> >>> According to kernel documentation[1] and kernel fs/proc/array code[2](It >>> just print cpu mask instead of present cpu), So using >>> /sys/devices/system/cpu/present is right instead of getting >>> cpu_allow_list. >>> >>> possible: cpus that have been allocated resources and can be >>> brought online if they are present. >>> >>> present: cpus that have been identified as being present in >>> the system. >>> >>> >>> Reviewed-by: Yang Xu <xuyang2018.jy@fujitsu.com> >>> >>> [1]https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/ABI/testing/sysfs-devices-system-cpu >>> >>> >>> [2]https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/fs/proc/array.c#n418 >>> >>> >>> >>> ps: >>> Also find a kernel documentation problem and have sent a patch to remove >>> non-existed cpu-hotplug.txt in admin-guide/cputopology.rst. >>> >>> >>> Best Regards >>> Yang Xu >>>>> >>>>> 4. The description of cpu_present_mask: >>>>> Bitmap of CPUs currently present in the system. >>>>> Not all of them may be online. When physical hotplug is processed >>>>> by the relevant subsystem (e.g ACPI) can change and new bit either be >>>>> added or removed from the map depending on the event is >>>>> hot-add/hot-remove. There are currently no locking rules as of now. >>>>> Typical usage is to init topology during boot, >>>>> at which time hotplug is disabled. >>>>> >>>>> Signed-off-by: Zou Wei <zou_wei@huawei.com> >>>>> --- >>>>> .../controllers/cpuset/cpuset_hotplug_test/cpuset_hotplug_test.sh | 3 >>>>> +-- >>>>> 1 file changed, 1 insertion(+), 2 deletions(-) >>>>> >>>>> diff --git >>>>> a/testcases/kernel/controllers/cpuset/cpuset_hotplug_test/cpuset_hotplug_test.sh >>>>> >>>>> >>>>> b/testcases/kernel/controllers/cpuset/cpuset_hotplug_test/cpuset_hotplug_test.sh >>>>> >>>>> >>>>> >>>>> index 155e536..2c6993a 100755 >>>>> --- >>>>> a/testcases/kernel/controllers/cpuset/cpuset_hotplug_test/cpuset_hotplug_test.sh >>>>> >>>>> >>>>> >>>>> +++ >>>>> b/testcases/kernel/controllers/cpuset/cpuset_hotplug_test/cpuset_hotplug_test.sh >>>>> >>>>> >>>>> >>>>> @@ -93,8 +93,7 @@ root_cpu_hotplug_test() >>>>> root_cpus="`cat $CPUSET/cpuset.cpus`" >>>>> - task_cpus="`cat /proc/$tst_pid/status | grep Cpus_allowed_list`" >>>>> - task_cpus="`echo $task_cpus | sed -e 's/Cpus_allowed_list: //'`" >>>>> + task_cpus="`cat /sys/devices/system/cpu/present`" >>>>> check_result "$root_cpus" "$expect_cpus" >>>>> ret=$? >>>>> >>>> ^ permalink raw reply [flat|nested] 8+ messages in thread
* [LTP] [PATCH] cpuset_hotplug_test/cpuset_hotplug: Fix bug for obtaining task_cpus value in root_cpu_hotplug_test 2021-06-21 9:53 ` xuyang2018.jy @ 2021-06-21 10:33 ` Samuel Zou 2021-06-21 11:03 ` xuyang2018.jy 0 siblings, 1 reply; 8+ messages in thread From: Samuel Zou @ 2021-06-21 10:33 UTC (permalink / raw) To: ltp Hi Xu, Please push it directly, thanks a lot :) On 2021/6/21 17:53, xuyang2018.jy@fujitsu.com wrote: > Hi Zou > Do you want to send a v2 patch? Or I modify this patch and push it directly. > > Best Regards > Yang Xu >> Hi Xu, >> >> You'are right, I miss to get task_cpus value in general_cpu_hotplug_test(). >> Thanks for your review and agree with your modification. >> >> >> On 2021/6/21 16:56, xuyang2018.jy@fujitsu.com wrote: >>> Hi Zou >>> >>> It looks like this patch also miss to get task_cpus value >>> intgeneric_cpu_hotplug_test when expect cpu value is EMPTY. >>> >>> I can reproduce this easily by increasing the possible_cpus value in >>> cmdline. Merge your patch, this case still fails as below: >>> cpuset_hotplug 1 TINFO: CPUs are numbered continuously starting at 0 >>> (0-3) >>> cpuset_hotplug 1 TINFO: Nodes are numbered continuously starting at 0 >>> (0-3) >>> /opt/ltp/testcases/bin/cpuset_funcs.sh: line 179: 5676 Killed >>> /bin/cat /dev/zero > /dev/null 2>&1 >>> cpuset_hotplug 1 TPASS: Cpuset vs CPU hotplug test succeeded. >>> /opt/ltp/testcases/bin/cpuset_funcs.sh: line 179: 5714 Killed >>> /bin/cat /dev/zero > /dev/null 2>&1 >>> cpuset_hotplug 3 TPASS: Cpuset vs CPU hotplug test succeeded. >>> /opt/ltp/testcases/bin/cpuset_funcs.sh: line 179: 5750 Killed >>> /bin/cat /dev/zero > /dev/null 2>&1 >>> cpuset_hotplug 5 TPASS: Cpuset vs CPU hotplug test succeeded. >>> cpuset_hotplug 7 TFAIL: task's cpu present list isn't expected(Result: >>> 0-7, Expect: 0-3). >>> /opt/ltp/testcases/bin/cpuset_funcs.sh: line 179: 5795 Killed >>> /bin/cat /dev/zero > /dev/null 2>&1 >>> /opt/ltp/testcases/bin/cpuset_funcs.sh: line 179: 5846 Killed >>> /bin/cat /dev/zero > /dev/null 2>&1 >>> cpuset_hotplug 9 TPASS: Cpuset vs CPU hotplug test succeeded. >>> /opt/ltp/testcases/bin/cpuset_funcs.sh: line 179: 5894 Killed >>> /bin/cat /dev/zero > /dev/null 2>&1 >>> cpuset_hotplug 11 TPASS: Cpuset vs CPU hotplug test succeeded. >>> >>> >>> Also since we have use present value, we shoud adjust output to match >>> it. I modify this patch as below, What do you think about it? >>> >>> --- >>> a/testcases/kernel/controllers/cpuset/cpuset_hotplug_test/cpuset_hotplug_test.sh >>> >>> +++ >>> b/testcases/kernel/controllers/cpuset/cpuset_hotplug_test/cpuset_hotplug_test.sh >>> >>> @@ -93,9 +93,7 @@ root_cpu_hotplug_test() >>> >>> root_cpus="`cat $CPUSET/cpuset.cpus`" >>> >>> - task_cpus="`cat /proc/$tst_pid/status | grep Cpus_allowed_list`" >>> - task_cpus="`echo $task_cpus | sed -e 's/Cpus_allowed_list: //'`" >>> - >>> + task_cpus="`cat /sys/devices/system/cpu/present`" >>> check_result "$root_cpus" "$expect_cpus" >>> ret=$? >>> if [ $ret -eq 0 ] >>> @@ -103,7 +101,7 @@ root_cpu_hotplug_test() >>> check_result "$task_cpus" "$expect_task_cpus" >>> ret=$? >>> if [ $ret -ne 0 ]; then >>> - tst_resm TFAIL "task's allowed list isn't >>> expected.(Result: $task_cpus, Expect: $expect_task_cpus)" >>> + tst_resm TFAIL "task's present list isn't >>> expected.(Result: $task_cpus, Expect: $expect_task_cpus)" >>> fi >>> else >>> tst_resm TFAIL "root group's cpus isn't >>> expected(Result: $root_cpus, Expect: $expect_cpus)." >>> @@ -166,7 +164,6 @@ general_cpu_hotplug_test() >>> sleep 1 >>> >>> cpus="`cat $path/cpuset.cpus`" >>> - >>> task_cpus="`cat /proc/$tst_pid/status | grep Cpus_allowed_list`" >>> task_cpus="`echo $task_cpus | sed -e 's/Cpus_allowed_list: //'`" >>> >>> @@ -186,6 +183,7 @@ general_cpu_hotplug_test() >>> /bin/kill -s SIGKILL $tst_pid >>> return 1 >>> fi >>> + task_cpus="`cat /sys/devices/system/cpu/present`" >>> fi >>> >>> check_result "$cpus" "$expect_cpus" >>> @@ -194,7 +192,7 @@ general_cpu_hotplug_test() >>> check_result $task_cpus $expect_task_cpus >>> ret=$? >>> if [ $ret -ne 0 ]; then >>> - tst_resm TFAIL "task's cpu allowed list isn't >>> expected(Result: $task_cpus, Expect: $expect_task_cpus)." >>> + tst_resm TFAIL "task's cpu present list isn't >>> expected(Result: $task_cpus, Expect: $expect_task_cpus)." >>> fi >>> else >>> if [ "$cpus" = "" ]; then >>> >>> >>> Best Regards >>> Yang XU >>>> Hi Samuel, Zou >>>>> Hi, >>>>> >>>>> A friendly reminder for the two patchs in: >>>>> >>>>> https://patchwork.ozlabs.org/project/ltp/patch/1617707717-63693-1-git-send-email-zou_wei@huawei.com/ >>>>> >>>>> >>>>> >>>>> >>>>> https://patchwork.ozlabs.org/project/ltp/patch/1617701249-62196-1-git-send-email-zou_wei@huawei.com/ >>>>> >>>>> >>>>> >>>>> >>>>> Can someone please review the patchs, comment, and if appropriate >>>>> commit >>>>> them? >>>>> >>>>> Regards, >>>>> Zou Wei >>>>> >>>>> On 2021/4/6 17:27, Zou Wei wrote: >>>>>> -------------------------- >>>>>> >>>>>> 1. The method of obtaining $task_cpus from root_cpu_hotplug_test is >>>>>> incorrect, because the value of Cpus_allowed_list is related >>>>>> to /sys/devices/system/cpu/possible and >>>>>> /sys/devices/system/cpu/isolated. >>>>>> >>>>>> 2. If isolcpus is configured in cmdline, the value of >>>>>> Cpus_allowed_list is equal to /sys/devices/system/cpu/possible minus >>>>>> /sys/devices/system/cpu/isolated. In this case, $task_cpus is >>>>>> inconsistent >>>>>> with $expect_task_cpus, test will be failed. >>>>>> >>>>>> 3. Need to change the method of obtaining $task_cpu >>>>>> from /sys/devices/system/cpu/present. >>>> Thanks for your patch, I also met the same problem when >>>> /sys/devices/system/cpu/possible is not equal >>>> to/sys/devices/system/cpu/possible/present . >>>> Cpus_allowed_list: 0-511 >>>> but my present cpu is 0-103 >>>> >>>> Then I use possible_cpus==104 in /etc/defaut/grub, cpu_hotplug case then >>>> pass. >>>> >>>> According to kernel documentation[1] and kernel fs/proc/array code[2](It >>>> just print cpu mask instead of present cpu), So using >>>> /sys/devices/system/cpu/present is right instead of getting >>>> cpu_allow_list. >>>> >>>> possible: cpus that have been allocated resources and can be >>>> brought online if they are present. >>>> >>>> present: cpus that have been identified as being present in >>>> the system. >>>> >>>> >>>> Reviewed-by: Yang Xu <xuyang2018.jy@fujitsu.com> >>>> >>>> [1]https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/ABI/testing/sysfs-devices-system-cpu >>>> >>>> >>>> [2]https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/fs/proc/array.c#n418 >>>> >>>> >>>> >>>> ps: >>>> Also find a kernel documentation problem and have sent a patch to remove >>>> non-existed cpu-hotplug.txt in admin-guide/cputopology.rst. >>>> >>>> >>>> Best Regards >>>> Yang Xu >>>>>> >>>>>> 4. The description of cpu_present_mask: >>>>>> Bitmap of CPUs currently present in the system. >>>>>> Not all of them may be online. When physical hotplug is processed >>>>>> by the relevant subsystem (e.g ACPI) can change and new bit either be >>>>>> added or removed from the map depending on the event is >>>>>> hot-add/hot-remove. There are currently no locking rules as of now. >>>>>> Typical usage is to init topology during boot, >>>>>> at which time hotplug is disabled. >>>>>> >>>>>> Signed-off-by: Zou Wei <zou_wei@huawei.com> >>>>>> --- >>>>>> .../controllers/cpuset/cpuset_hotplug_test/cpuset_hotplug_test.sh | 3 >>>>>> +-- >>>>>> 1 file changed, 1 insertion(+), 2 deletions(-) >>>>>> >>>>>> diff --git >>>>>> a/testcases/kernel/controllers/cpuset/cpuset_hotplug_test/cpuset_hotplug_test.sh >>>>>> >>>>>> >>>>>> b/testcases/kernel/controllers/cpuset/cpuset_hotplug_test/cpuset_hotplug_test.sh >>>>>> >>>>>> >>>>>> >>>>>> index 155e536..2c6993a 100755 >>>>>> --- >>>>>> a/testcases/kernel/controllers/cpuset/cpuset_hotplug_test/cpuset_hotplug_test.sh >>>>>> >>>>>> >>>>>> >>>>>> +++ >>>>>> b/testcases/kernel/controllers/cpuset/cpuset_hotplug_test/cpuset_hotplug_test.sh >>>>>> >>>>>> >>>>>> >>>>>> @@ -93,8 +93,7 @@ root_cpu_hotplug_test() >>>>>> root_cpus="`cat $CPUSET/cpuset.cpus`" >>>>>> - task_cpus="`cat /proc/$tst_pid/status | grep Cpus_allowed_list`" >>>>>> - task_cpus="`echo $task_cpus | sed -e 's/Cpus_allowed_list: //'`" >>>>>> + task_cpus="`cat /sys/devices/system/cpu/present`" >>>>>> check_result "$root_cpus" "$expect_cpus" >>>>>> ret=$? >>>>>> >>>>> ^ permalink raw reply [flat|nested] 8+ messages in thread
* [LTP] [PATCH] cpuset_hotplug_test/cpuset_hotplug: Fix bug for obtaining task_cpus value in root_cpu_hotplug_test 2021-06-21 10:33 ` Samuel Zou @ 2021-06-21 11:03 ` xuyang2018.jy 0 siblings, 0 replies; 8+ messages in thread From: xuyang2018.jy @ 2021-06-21 11:03 UTC (permalink / raw) To: ltp Hi Zou Thanks for your patch! Merged. Best Regards Yang Xu > Hi Xu, > > Please push it directly, thanks a lot :) > > On 2021/6/21 17:53, xuyang2018.jy@fujitsu.com wrote: >> Hi Zou >> Do you want to send a v2 patch? Or I modify this patch and push it >> directly. >> >> Best Regards >> Yang Xu >>> Hi Xu, >>> >>> You'are right, I miss to get task_cpus value in >>> general_cpu_hotplug_test(). >>> Thanks for your review and agree with your modification. >>> >>> >>> On 2021/6/21 16:56, xuyang2018.jy@fujitsu.com wrote: >>>> Hi Zou >>>> >>>> It looks like this patch also miss to get task_cpus value >>>> intgeneric_cpu_hotplug_test when expect cpu value is EMPTY. >>>> >>>> I can reproduce this easily by increasing the possible_cpus value in >>>> cmdline. Merge your patch, this case still fails as below: >>>> cpuset_hotplug 1 TINFO: CPUs are numbered continuously starting at 0 >>>> (0-3) >>>> cpuset_hotplug 1 TINFO: Nodes are numbered continuously starting at 0 >>>> (0-3) >>>> /opt/ltp/testcases/bin/cpuset_funcs.sh: line 179: 5676 Killed >>>> /bin/cat /dev/zero > /dev/null 2>&1 >>>> cpuset_hotplug 1 TPASS: Cpuset vs CPU hotplug test succeeded. >>>> /opt/ltp/testcases/bin/cpuset_funcs.sh: line 179: 5714 Killed >>>> /bin/cat /dev/zero > /dev/null 2>&1 >>>> cpuset_hotplug 3 TPASS: Cpuset vs CPU hotplug test succeeded. >>>> /opt/ltp/testcases/bin/cpuset_funcs.sh: line 179: 5750 Killed >>>> /bin/cat /dev/zero > /dev/null 2>&1 >>>> cpuset_hotplug 5 TPASS: Cpuset vs CPU hotplug test succeeded. >>>> cpuset_hotplug 7 TFAIL: task's cpu present list isn't expected(Result: >>>> 0-7, Expect: 0-3). >>>> /opt/ltp/testcases/bin/cpuset_funcs.sh: line 179: 5795 Killed >>>> /bin/cat /dev/zero > /dev/null 2>&1 >>>> /opt/ltp/testcases/bin/cpuset_funcs.sh: line 179: 5846 Killed >>>> /bin/cat /dev/zero > /dev/null 2>&1 >>>> cpuset_hotplug 9 TPASS: Cpuset vs CPU hotplug test succeeded. >>>> /opt/ltp/testcases/bin/cpuset_funcs.sh: line 179: 5894 Killed >>>> /bin/cat /dev/zero > /dev/null 2>&1 >>>> cpuset_hotplug 11 TPASS: Cpuset vs CPU hotplug test succeeded. >>>> >>>> >>>> Also since we have use present value, we shoud adjust output to match >>>> it. I modify this patch as below, What do you think about it? >>>> >>>> --- >>>> a/testcases/kernel/controllers/cpuset/cpuset_hotplug_test/cpuset_hotplug_test.sh >>>> >>>> >>>> +++ >>>> b/testcases/kernel/controllers/cpuset/cpuset_hotplug_test/cpuset_hotplug_test.sh >>>> >>>> >>>> @@ -93,9 +93,7 @@ root_cpu_hotplug_test() >>>> >>>> root_cpus="`cat $CPUSET/cpuset.cpus`" >>>> >>>> - task_cpus="`cat /proc/$tst_pid/status | grep Cpus_allowed_list`" >>>> - task_cpus="`echo $task_cpus | sed -e 's/Cpus_allowed_list: //'`" >>>> - >>>> + task_cpus="`cat /sys/devices/system/cpu/present`" >>>> check_result "$root_cpus" "$expect_cpus" >>>> ret=$? >>>> if [ $ret -eq 0 ] >>>> @@ -103,7 +101,7 @@ root_cpu_hotplug_test() >>>> check_result "$task_cpus" "$expect_task_cpus" >>>> ret=$? >>>> if [ $ret -ne 0 ]; then >>>> - tst_resm TFAIL "task's allowed list isn't >>>> expected.(Result: $task_cpus, Expect: $expect_task_cpus)" >>>> + tst_resm TFAIL "task's present list isn't >>>> expected.(Result: $task_cpus, Expect: $expect_task_cpus)" >>>> fi >>>> else >>>> tst_resm TFAIL "root group's cpus isn't >>>> expected(Result: $root_cpus, Expect: $expect_cpus)." >>>> @@ -166,7 +164,6 @@ general_cpu_hotplug_test() >>>> sleep 1 >>>> >>>> cpus="`cat $path/cpuset.cpus`" >>>> - >>>> task_cpus="`cat /proc/$tst_pid/status | grep Cpus_allowed_list`" >>>> task_cpus="`echo $task_cpus | sed -e 's/Cpus_allowed_list: //'`" >>>> >>>> @@ -186,6 +183,7 @@ general_cpu_hotplug_test() >>>> /bin/kill -s SIGKILL $tst_pid >>>> return 1 >>>> fi >>>> + task_cpus="`cat /sys/devices/system/cpu/present`" >>>> fi >>>> >>>> check_result "$cpus" "$expect_cpus" >>>> @@ -194,7 +192,7 @@ general_cpu_hotplug_test() >>>> check_result $task_cpus $expect_task_cpus >>>> ret=$? >>>> if [ $ret -ne 0 ]; then >>>> - tst_resm TFAIL "task's cpu allowed list isn't >>>> expected(Result: $task_cpus, Expect: $expect_task_cpus)." >>>> + tst_resm TFAIL "task's cpu present list isn't >>>> expected(Result: $task_cpus, Expect: $expect_task_cpus)." >>>> fi >>>> else >>>> if [ "$cpus" = "" ]; then >>>> >>>> >>>> Best Regards >>>> Yang XU >>>>> Hi Samuel, Zou >>>>>> Hi, >>>>>> >>>>>> A friendly reminder for the two patchs in: >>>>>> >>>>>> https://patchwork.ozlabs.org/project/ltp/patch/1617707717-63693-1-git-send-email-zou_wei@huawei.com/ >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> https://patchwork.ozlabs.org/project/ltp/patch/1617701249-62196-1-git-send-email-zou_wei@huawei.com/ >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> Can someone please review the patchs, comment, and if appropriate >>>>>> commit >>>>>> them? >>>>>> >>>>>> Regards, >>>>>> Zou Wei >>>>>> >>>>>> On 2021/4/6 17:27, Zou Wei wrote: >>>>>>> -------------------------- >>>>>>> >>>>>>> 1. The method of obtaining $task_cpus from root_cpu_hotplug_test is >>>>>>> incorrect, because the value of Cpus_allowed_list is related >>>>>>> to /sys/devices/system/cpu/possible and >>>>>>> /sys/devices/system/cpu/isolated. >>>>>>> >>>>>>> 2. If isolcpus is configured in cmdline, the value of >>>>>>> Cpus_allowed_list is equal to /sys/devices/system/cpu/possible minus >>>>>>> /sys/devices/system/cpu/isolated. In this case, $task_cpus is >>>>>>> inconsistent >>>>>>> with $expect_task_cpus, test will be failed. >>>>>>> >>>>>>> 3. Need to change the method of obtaining $task_cpu >>>>>>> from /sys/devices/system/cpu/present. >>>>> Thanks for your patch, I also met the same problem when >>>>> /sys/devices/system/cpu/possible is not equal >>>>> to/sys/devices/system/cpu/possible/present . >>>>> Cpus_allowed_list: 0-511 >>>>> but my present cpu is 0-103 >>>>> >>>>> Then I use possible_cpus==104 in /etc/defaut/grub, cpu_hotplug case >>>>> then >>>>> pass. >>>>> >>>>> According to kernel documentation[1] and kernel fs/proc/array >>>>> code[2](It >>>>> just print cpu mask instead of present cpu), So using >>>>> /sys/devices/system/cpu/present is right instead of getting >>>>> cpu_allow_list. >>>>> >>>>> possible: cpus that have been allocated resources and can be >>>>> brought online if they are present. >>>>> >>>>> present: cpus that have been identified as being present in >>>>> the system. >>>>> >>>>> >>>>> Reviewed-by: Yang Xu <xuyang2018.jy@fujitsu.com> >>>>> >>>>> [1]https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/ABI/testing/sysfs-devices-system-cpu >>>>> >>>>> >>>>> >>>>> [2]https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/fs/proc/array.c#n418 >>>>> >>>>> >>>>> >>>>> >>>>> ps: >>>>> Also find a kernel documentation problem and have sent a patch to >>>>> remove >>>>> non-existed cpu-hotplug.txt in admin-guide/cputopology.rst. >>>>> >>>>> >>>>> Best Regards >>>>> Yang Xu >>>>>>> >>>>>>> 4. The description of cpu_present_mask: >>>>>>> Bitmap of CPUs currently present in the system. >>>>>>> Not all of them may be online. When physical hotplug is processed >>>>>>> by the relevant subsystem (e.g ACPI) can change and new bit >>>>>>> either be >>>>>>> added or removed from the map depending on the event is >>>>>>> hot-add/hot-remove. There are currently no locking rules as of now. >>>>>>> Typical usage is to init topology during boot, >>>>>>> at which time hotplug is disabled. >>>>>>> >>>>>>> Signed-off-by: Zou Wei <zou_wei@huawei.com> >>>>>>> --- >>>>>>> .../controllers/cpuset/cpuset_hotplug_test/cpuset_hotplug_test.sh >>>>>>> | 3 >>>>>>> +-- >>>>>>> 1 file changed, 1 insertion(+), 2 deletions(-) >>>>>>> >>>>>>> diff --git >>>>>>> a/testcases/kernel/controllers/cpuset/cpuset_hotplug_test/cpuset_hotplug_test.sh >>>>>>> >>>>>>> >>>>>>> >>>>>>> b/testcases/kernel/controllers/cpuset/cpuset_hotplug_test/cpuset_hotplug_test.sh >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> index 155e536..2c6993a 100755 >>>>>>> --- >>>>>>> a/testcases/kernel/controllers/cpuset/cpuset_hotplug_test/cpuset_hotplug_test.sh >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> +++ >>>>>>> b/testcases/kernel/controllers/cpuset/cpuset_hotplug_test/cpuset_hotplug_test.sh >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> @@ -93,8 +93,7 @@ root_cpu_hotplug_test() >>>>>>> root_cpus="`cat $CPUSET/cpuset.cpus`" >>>>>>> - task_cpus="`cat /proc/$tst_pid/status | grep Cpus_allowed_list`" >>>>>>> - task_cpus="`echo $task_cpus | sed -e 's/Cpus_allowed_list: //'`" >>>>>>> + task_cpus="`cat /sys/devices/system/cpu/present`" >>>>>>> check_result "$root_cpus" "$expect_cpus" >>>>>>> ret=$? >>>>>>> >>>>>> ^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2021-06-21 11:03 UTC | newest] Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2021-04-06 9:27 [LTP] [PATCH] cpuset_hotplug_test/cpuset_hotplug: Fix bug for obtaining task_cpus value in root_cpu_hotplug_test Zou Wei 2021-04-27 1:35 ` Samuel Zou 2021-06-17 11:07 ` xuyang2018.jy 2021-06-21 8:56 ` xuyang2018.jy 2021-06-21 9:18 ` Samuel Zou 2021-06-21 9:53 ` xuyang2018.jy 2021-06-21 10:33 ` Samuel Zou 2021-06-21 11:03 ` xuyang2018.jy
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.