Message ID | 1542366655-3891-1-git-send-email-yangx.jy@cn.fujitsu.com |
---|---|
State | Accepted |
Delegated to: | Petr Vorel |
Headers | show |
Series | cpu_hotplug/cpuhotplug03.sh: Accurately select command name by -C option | expand |
Hi Xiao, > Since procps v3.3.15, running cpuhotplug03.sh got the following error: > ---------------------------------------------------------------------- > cpuhotplug03 1 TINFO: Onlining CPU 1 > cpuhotplug03 1 TBROK: No cpuhotplug_do_spin_loop processes found on any processor > ---------------------------------------------------------------------- > On procps v3.3.15, ps command name selection is extended to 64 characters > so procps cannot trucate normal command name to 15 characters by default. > In addition, normal command name is truncated to 16 characters and stored > in /proc/<pid>/stat and /proc/<pid>/status in kernel.(except workqueue worker > because it has been extended to 64 by kernel commit 6b59808) > References: > procps commit: bb272580a6f3c192c61e307f9e341514d892d06e > procps commit: 14005a371e5c14289e96a4927ffd1a827d3c9d85 > procps commit: 2cfdbbe897f0d4e41460c7c2b92acfc5804652c8 > kernel commit: 6b59808bfe482642287ddf3fe9d4cccb10756652 > Note: > I think the lastest ps(1) manpage for command name length is confused > because kernel only extend workqueue worker name to 64 characters by > commit 6b59808 and still truncate normal command name to 16 characters. > e.g: > --------------------------------------------------------------------- > cd /root/ltp/testcases/kernel/hotplug/cpu_hotplug/tools > PATH=$PATH:$PWD cpuhotplug_do_spin_loop & > [1] 8732 > cat /proc/8732/stat > 8732 (cpuhotplug_do_s) ... > cat /proc/8732/status | grep Name > Name: cpuhotplug_do_s > --------------------------------------------------------------------- Agree. > I will try to update ps(1) manpage for command name length. Good :). > Signed-off-by: Xiao Yang <yangx.jy@cn.fujitsu.com> Acked-by: Petr Vorel <pvorel@suse.cz> > --- > .../kernel/hotplug/cpu_hotplug/functional/cpuhotplug03.sh | 12 ++++++++++-- > 1 file changed, 10 insertions(+), 2 deletions(-) Kind regards, Petr
Hi Petr, Could you push this patch if nobody has objections. :-) Best Regards, Xiao Yang On 2018/12/06 5:13, Petr Vorel wrote: > Hi Xiao, > >> Since procps v3.3.15, running cpuhotplug03.sh got the following error: >> ---------------------------------------------------------------------- >> cpuhotplug03 1 TINFO: Onlining CPU 1 >> cpuhotplug03 1 TBROK: No cpuhotplug_do_spin_loop processes found on any processor >> ---------------------------------------------------------------------- >> On procps v3.3.15, ps command name selection is extended to 64 characters >> so procps cannot trucate normal command name to 15 characters by default. >> In addition, normal command name is truncated to 16 characters and stored >> in /proc/<pid>/stat and /proc/<pid>/status in kernel.(except workqueue worker >> because it has been extended to 64 by kernel commit 6b59808) >> References: >> procps commit: bb272580a6f3c192c61e307f9e341514d892d06e >> procps commit: 14005a371e5c14289e96a4927ffd1a827d3c9d85 >> procps commit: 2cfdbbe897f0d4e41460c7c2b92acfc5804652c8 >> kernel commit: 6b59808bfe482642287ddf3fe9d4cccb10756652 >> Note: >> I think the lastest ps(1) manpage for command name length is confused >> because kernel only extend workqueue worker name to 64 characters by >> commit 6b59808 and still truncate normal command name to 16 characters. >> e.g: >> --------------------------------------------------------------------- >> cd /root/ltp/testcases/kernel/hotplug/cpu_hotplug/tools >> PATH=$PATH:$PWD cpuhotplug_do_spin_loop& >> [1] 8732 >> cat /proc/8732/stat >> 8732 (cpuhotplug_do_s) ... >> cat /proc/8732/status | grep Name >> Name: cpuhotplug_do_s >> --------------------------------------------------------------------- > Agree. > >> I will try to update ps(1) manpage for command name length. > Good :). > >> Signed-off-by: Xiao Yang<yangx.jy@cn.fujitsu.com> > Acked-by: Petr Vorel<pvorel@suse.cz> >> --- >> .../kernel/hotplug/cpu_hotplug/functional/cpuhotplug03.sh | 12 ++++++++++-- >> 1 file changed, 10 insertions(+), 2 deletions(-) > > Kind regards, > Petr > > > . >
Hi Xiao, ... > > > References: > > > procps commit: bb272580a6f3c192c61e307f9e341514d892d06e > > > procps commit: 14005a371e5c14289e96a4927ffd1a827d3c9d85 > > > procps commit: 2cfdbbe897f0d4e41460c7c2b92acfc5804652c8 > > > kernel commit: 6b59808bfe482642287ddf3fe9d4cccb10756652 Merged with minor changes: remove references from code and use standard references (short has + commit message) in commit message. Thanks for your patch!. > > > Note: > > > I think the lastest ps(1) manpage for command name length is confused > > > because kernel only extend workqueue worker name to 64 characters by > > > commit 6b59808 and still truncate normal command name to 16 characters. > > > e.g: > > > --------------------------------------------------------------------- > > > cd /root/ltp/testcases/kernel/hotplug/cpu_hotplug/tools > > > PATH=$PATH:$PWD cpuhotplug_do_spin_loop& > > > [1] 8732 > > > cat /proc/8732/stat > > > 8732 (cpuhotplug_do_s) ... > > > cat /proc/8732/status | grep Name > > > Name: cpuhotplug_do_s > > > --------------------------------------------------------------------- > > Agree. > > > I will try to update ps(1) manpage for command name length. > > Good :). Out of curiosity: have you reported it to procps upstream? Kind regards, Petr
On 2019/01/04 5:03, Petr Vorel wrote: > Hi Xiao, > > ... >>>> References: >>>> procps commit: bb272580a6f3c192c61e307f9e341514d892d06e >>>> procps commit: 14005a371e5c14289e96a4927ffd1a827d3c9d85 >>>> procps commit: 2cfdbbe897f0d4e41460c7c2b92acfc5804652c8 >>>> kernel commit: 6b59808bfe482642287ddf3fe9d4cccb10756652 > Merged with minor changes: remove references from code and use standard > references (short has + commit message) in commit message. > > Thanks for your patch!. Hi Petr, Thanks for your push. >>>> Note: >>>> I think the lastest ps(1) manpage for command name length is confused >>>> because kernel only extend workqueue worker name to 64 characters by >>>> commit 6b59808 and still truncate normal command name to 16 characters. >>>> e.g: >>>> --------------------------------------------------------------------- >>>> cd /root/ltp/testcases/kernel/hotplug/cpu_hotplug/tools >>>> PATH=$PATH:$PWD cpuhotplug_do_spin_loop& >>>> [1] 8732 >>>> cat /proc/8732/stat >>>> 8732 (cpuhotplug_do_s) ... >>>> cat /proc/8732/status | grep Name >>>> Name: cpuhotplug_do_s >>>> --------------------------------------------------------------------- >>> Agree. >>>> I will try to update ps(1) manpage for command name length. >>> Good :). > Out of curiosity: have you reported it to procps upstream? I have reported and sent a fix patch to procps mail list(i.e. procps@freelists.org), but it seems that nobody reveiws and pushes it. I am going to ping. :-) Please see attachment for our fix patch. Best Regards, Xiao Yang > > Kind regards, > Petr > > > From e9850bd4fc486b5d9aa152f317e45c7f5e26d8b2 Mon Sep 17 00:00:00 2001 From: Xiao Yang <yangx.jy@cn.fujitsu.com> Date: Fri, 16 Nov 2018 19:54:05 +0800 Subject: [PATCH] docs: Correct ps.1 for command name length According to the lastest kernel and procps, correct ps.1 for command name length. Signed-off-by: Xiao Yang <yangx.jy@cn.fujitsu.com> --- ps/ps.1 | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/ps/ps.1 b/ps/ps.1 index 844341c..1c28357 100644 --- a/ps/ps.1 +++ b/ps/ps.1 @@ -237,9 +237,11 @@ Select by command name. This selects the processes whose executable name is given in .IR cmdlist . NOTE: The command name is not the same as the command line. Previous versions -of procps and the kernel truncated this command name to 15 characters. This -limitation is no longer present in both. If you depended on matching only -15 characters, you may no longer get a match. +of procps and the kernel truncated this command name to 15 characters by default. +Currently, procps v3.3.15 extended the command name to 64 characters but kernel +only extended workqueue worker name to 64 characters by commit 6b59808. You +should match only 15 characters for normal command name and match longer +characters(full name of workqueue worker) for workqueue worker name. .TP .BI \-G \ grplist Select by real group ID (RGID) or name. This selects the processes whose
diff --git a/testcases/kernel/hotplug/cpu_hotplug/functional/cpuhotplug03.sh b/testcases/kernel/hotplug/cpu_hotplug/functional/cpuhotplug03.sh index 14ccf85..a8c76a0 100755 --- a/testcases/kernel/hotplug/cpu_hotplug/functional/cpuhotplug03.sh +++ b/testcases/kernel/hotplug/cpu_hotplug/functional/cpuhotplug03.sh @@ -119,12 +119,20 @@ until [ $LOOP_COUNT -gt $HOTPLUG03_LOOPS ]; do sleep 1 # Verify at least one process has migrated to the new CPU - ps -o psr -o command --no-headers -C cpuhotplug_do_spin_loop + # Since procps v3.3.15, we need to accurately select command name + # by -C option, because procps cannot trucate normal command name + # to 15 characters by default). + # References: + # procps commit: bb272580a6f3c192c61e307f9e341514d892d06e + # procps commit: 14005a371e5c14289e96a4927ffd1a827d3c9d85 + # procps commit: 2cfdbbe897f0d4e41460c7c2b92acfc5804652c8 + # kernel commit: 6b59808bfe482642287ddf3fe9d4cccb10756652 + ps -o psr -o command --no-headers -C cpuhotplug_do_s if [ $? -ne 0 ]; then tst_brkm TBROK "No cpuhotplug_do_spin_loop processes \ found on any processor" fi - NUM=`ps -o psr -o command --no-headers -C cpuhotplug_do_spin_loop \ + NUM=`ps -o psr -o command --no-headers -C cpuhotplug_do_s \ | sed -e "s/^ *//" | cut -d' ' -f 1 | grep "^${CPU_TO_TEST}$" \ | wc -l` if [ $NUM -lt 1 ]; then
Since procps v3.3.15, running cpuhotplug03.sh got the following error: ---------------------------------------------------------------------- cpuhotplug03 1 TINFO: Onlining CPU 1 cpuhotplug03 1 TBROK: No cpuhotplug_do_spin_loop processes found on any processor ---------------------------------------------------------------------- On procps v3.3.15, ps command name selection is extended to 64 characters so procps cannot trucate normal command name to 15 characters by default. In addition, normal command name is truncated to 16 characters and stored in /proc/<pid>/stat and /proc/<pid>/status in kernel.(except workqueue worker because it has been extended to 64 by kernel commit 6b59808) References: procps commit: bb272580a6f3c192c61e307f9e341514d892d06e procps commit: 14005a371e5c14289e96a4927ffd1a827d3c9d85 procps commit: 2cfdbbe897f0d4e41460c7c2b92acfc5804652c8 kernel commit: 6b59808bfe482642287ddf3fe9d4cccb10756652 Note: I think the lastest ps(1) manpage for command name length is confused because kernel only extend workqueue worker name to 64 characters by commit 6b59808 and still truncate normal command name to 16 characters. e.g: --------------------------------------------------------------------- cd /root/ltp/testcases/kernel/hotplug/cpu_hotplug/tools PATH=$PATH:$PWD cpuhotplug_do_spin_loop & [1] 8732 cat /proc/8732/stat 8732 (cpuhotplug_do_s) ... cat /proc/8732/status | grep Name Name: cpuhotplug_do_s --------------------------------------------------------------------- I will try to update ps(1) manpage for command name length. Signed-off-by: Xiao Yang <yangx.jy@cn.fujitsu.com> --- .../kernel/hotplug/cpu_hotplug/functional/cpuhotplug03.sh | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-)