Subject: Re: bin/34271 (ps doesn't sort correctly)
To: None <gnats-admin@netbsd.org, netbsd-bugs@netbsd.org, zafer@aydogan.de>
From: Zafer Aydogan <zafer@aydogan.de>
List: netbsd-bugs
Date: 10/01/2006 19:35:02
The following reply was made to PR bin/34271; it has been noted by GNATS.
From: "Zafer Aydogan" <zafer@aydogan.de>
To: gnats-bugs@netbsd.org
Cc: gnats-admin@netbsd.org, netbsd-bugs@netbsd.org, apb@netbsd.org
Subject: Re: bin/34271 (ps doesn't sort correctly)
Date: Sun, 1 Oct 2006 18:39:05 +0200
I'm running current from two days ago and the problem persists.
To geneate 100% cpu, I'm running top -s 0 on one console
It's odd. If you separate the the options with an hyphen (-m -r), then
only the first argument is used.
# ps -r -m -O %cpu,vsz
PID %CPU VSZ TTY STAT TIME COMMAND
20182 66.6 224 ttyp1 R+ 7:11.19 top
206 0.9 24596 ttyp0 Sa+ 2:59.69 /usr/pkg/lib/firefox/firefox-bin
797 0.0 1332 ttyE6 S 0:05.22 icewm
18387 0.0 240 ttyp1 I 0:00.02 ksh
543 0.0 228 ttyp0 IWs 0:00.02 -sh (csh)
18093 0.0 220 ttyp4 Ss 0:00.02 -sh (csh)
275 0.0 216 ttyp1 Is 0:00.02 -sh (csh)
27099 0.0 216 ttyp3 Is+ 0:00.02 -sh (csh)
96 0.0 208 ttyE0 IW+ 0:00.01 -csh
104 0.0 208 ttyE6 IW 0:00.01 -csh
109 0.0 148 ttyE6 IW+ 0:00.01 /bin/sh /usr/X11R6/bin/startx
665 0.0 144 ttyE0 IWs 0:00.03 login
719 0.0 144 ttyE6 IWs 0:00.03 login
22396 0.0 96 ttyp4 R+ 0:00.00 ps -r -m -O %cpu,vsz
761 0.0 64 ttyE6 IW+ 0:00.01 xinit /root/.xinitrc --
529 0.0 52 ttyE1 IWs+ 0:00.01 /usr/libexec/getty Pc ttyE1
765 0.0 52 ttyE2 IWs+ 0:00.01 /usr/libexec/getty Pc ttyE2
789 0.0 52 ttyE3 IWs+ 0:00.01 /usr/libexec/getty Pc ttyE3
796 0.0 52 ttyE5 IWs+ 0:00.01 /usr/libexec/getty Pc ttyE5
818 0.0 52 ttyE7 IWs+ 0:00.01 /usr/libexec/getty Pc ttyE7
as you can see, this is sorted by -r (%cpu) and the second argument -m
is ignored.
if I enter:
# ps -m -r -O %cpu,vsz
PID %CPU VSZ TTY STAT TIME COMMAND
206 5.3 24596 ttyp0 Sa+ 3:08.42 /usr/pkg/lib/firefox/firefox-bin
797 0.0 1332 ttyE6 S 0:05.34 icewm
18387 0.0 240 ttyp1 I 0:00.02 ksh
543 0.0 228 ttyp0 IWs 0:00.02 -sh (csh)
20182 59.8 224 ttyp1 R+ 8:02.65 top
18093 0.0 220 ttyp4 Ss 0:00.02 -sh (csh)
275 0.0 216 ttyp1 Is 0:00.02 -sh (csh)
27099 0.0 216 ttyp3 Is+ 0:00.02 -sh (csh)
96 0.0 208 ttyE0 IW+ 0:00.01 -csh
104 0.0 208 ttyE6 IW 0:00.01 -csh
109 0.0 148 ttyE6 IW+ 0:00.01 /bin/sh /usr/X11R6/bin/startx
665 0.0 144 ttyE0 IWs 0:00.03 login
719 0.0 144 ttyE6 IWs 0:00.03 login
22733 0.0 96 ttyp4 R+ 0:00.00 ps -m -r -O %cpu,vsz
761 0.0 64 ttyE6 IW+ 0:00.01 xinit /root/.xinitrc --
529 0.0 52 ttyE1 IWs+ 0:00.01 /usr/libexec/getty Pc ttyE1
765 0.0 52 ttyE2 IWs+ 0:00.01 /usr/libexec/getty Pc ttyE2
789 0.0 52 ttyE3 IWs+ 0:00.01 /usr/libexec/getty Pc ttyE3
796 0.0 52 ttyE5 IWs+ 0:00.01 /usr/libexec/getty Pc ttyE5
818 0.0 52 ttyE7 IWs+ 0:00.01 /usr/libexec/getty Pc ttyE7
then again the second argument -r (%cpu) is ignored and it is sorted
my -m (vsz).
This is wrong. -r and -m are mutually exclusive.
The last argument is -r so the output have to be sort by -r (%cpu) and not by
-m. (vsz).
but, if you use -mr or -rm (written together), then -m overrides -r (see PR).
# ps -mr -O %cpu,vsz
PID %CPU VSZ TTY STAT TIME COMMAND
206 2.5 24904 ttyp0 Sa+ 4:07.61 /usr/pkg/lib/firefox/firefox-bin
797 0.0 1332 ttyE6 S 0:06.45 icewm
18387 0.0 240 ttyp1 I 0:00.02 ksh
543 0.0 228 ttyp0 IWs 0:00.02 -sh (csh)
20182 63.4 224 ttyp1 R+ 17:02.07 top
18093 0.0 220 ttyp4 Ss 0:00.03 -sh (csh)
275 0.0 216 ttyp1 Is 0:00.02 -sh (csh)
27099 0.0 216 ttyp3 Is+ 0:00.02 -sh (csh)
96 0.0 208 ttyE0 IW+ 0:00.01 -csh
104 0.0 208 ttyE6 IW 0:00.01 -csh
109 0.0 148 ttyE6 IW+ 0:00.01 /bin/sh /usr/X11R6/bin/startx
665 0.0 144 ttyE0 IWs 0:00.03 login
719 0.0 144 ttyE6 IWs 0:00.03 login
23931 0.0 96 ttyp4 R+ 0:00.00 ps -mr -O %cpu,vsz
761 0.0 64 ttyE6 IW+ 0:00.01 xinit /root/.xinitrc --
529 0.0 52 ttyE1 IWs+ 0:00.01 /usr/libexec/getty Pc ttyE1
765 0.0 52 ttyE2 IWs+ 0:00.01 /usr/libexec/getty Pc ttyE2
789 0.0 52 ttyE3 IWs+ 0:00.01 /usr/libexec/getty Pc ttyE3
796 0.0 52 ttyE5 IWs+ 0:00.01 /usr/libexec/getty Pc ttyE5
818 0.0 52 ttyE7 IWs+ 0:00.01 /usr/libexec/getty Pc ttyE7
as you see, the last argument is r, but the output is sorted by m (vsz).
This is wrong, aslong m and r are mutually exclusive, the last argument wins.
Zafer.
2006/9/30, apb@netbsd.org <apb@netbsd.org>:
> Synopsis: ps doesn't sort correctly
>
> State-Changed-From-To: open->feedback
> State-Changed-By: apb@netbsd.org
> State-Changed-When: Sat, 30 Sep 2006 21:46:39 +0000
> State-Changed-Why:
> I can't reproduce this. "ps -m -r -O %cpu,vsz" and "ps -r -m -O %cpu,vsz"
> sort differently for me, as expected.
>
>
>
>