diff mbox series

cpu_hotplug/cpuhotplug03.sh: Accurately select command name by -C option

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

Commit Message

Xiao Yang Nov. 16, 2018, 11:10 a.m. UTC
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(-)

Comments

Petr Vorel Dec. 5, 2018, 9:13 p.m. UTC | #1
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
Xiao Yang Dec. 24, 2018, 11:12 a.m. UTC | #2
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
>
>
> .
>
Petr Vorel Jan. 3, 2019, 9:03 p.m. UTC | #3
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
Xiao Yang Jan. 4, 2019, 2:38 a.m. UTC | #4
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 mbox series

Patch

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