Date: Mon, 24 Dec 2018 15:38:27 -0800 From: Mark Millard <marklmi@yahoo.com> To: Yuri Pankov <yuripv@yuripv.net> Cc: FreeBSD Current <freebsd-current@freebsd.org> Subject: Re: head -r3418363: top -opid process list order is rather odd (top -Saopid example shown) Message-ID: <DB7C0654-2017-4F8B-A286-8F67C34253CB@yahoo.com> In-Reply-To: <d50b9e79-5790-f57b-3f92-e9a189fa7beb@yuripv.net> References: <6C9BDD8A-7889-4819-86E3-CE13AC3323AC@yahoo.com> <d50b9e79-5790-f57b-3f92-e9a189fa7beb@yuripv.net>
next in thread | previous in thread | raw e-mail | index | archive | help
On 2018-Dec-24, at 13:49, Yuri Pankov <yuripv at yuripv.net> wrote: > Mark Millard wrote: >> =46rom my from=3Dsource head -r3418363 context, top with -opid does = not >> seem to sort in a coherent order, not time of process creation order >> (either direction) and not in just-PID numeric order (either >> direction). For example: >>=20 >> PID USERNAME THR PRI NICE SIZE RES STATE C TIME WCPU = COMMAND >> 0 root 24 -16 - 0 368K swapin 1 0:00 0.00% = [kernel] >> 16 root 1 -16 - 0 16K - 3 0:00 0.00% = [soaiod2] >> 752 root 1 20 0 18M 18M select 1 0:07 0.01% = /usr/sbin/ntpd -p /var/db/ntp/ntpd.pid -c /etc/ntp.conf -g >> 800 root 1 20 0 11M 908K nanslp 1 0:01 0.00% = /usr/sbin/cron -s >> 1 root 1 20 0 9900K 132K wait 3 0:00 0.00% = [init] >> 17 root 1 -16 - 0 16K - 0 0:00 0.00% = [soaiod3] >> 2 root 1 -16 - 0 16K crypto 0 0:00 0.00% = [crypto] >> 18 root 1 -16 - 0 16K - 0 0:00 0.00% = [soaiod4] >> 850 root 1 20 0 13M 2756K wait 3 0:00 0.00% = login [pam] (login) >> 3 root 1 -16 - 0 16K crypto 0 0:00 0.00% = [crypto returns 0] >> 19 root 1 -16 - 0 16K mmcsd 0 0:25 0.00% = [mmcsd0: mmc/sd card] >> 643 root 1 20 0 11M 1124K select 2 0:01 0.00% = /usr/sbin/syslogd -s >> 4 root 1 -16 - 0 16K crypto 0 0:00 0.00% = [crypto returns 1] >> 20 root 1 -16 - 0 16K mmcsd 0 0:00 0.00% = [mmcsd0boot0: mmc/sd] >> 5 root 1 -16 - 0 16K crypto 0 0:00 0.00% = [crypto returns 2] >> 21 root 1 -16 - 0 16K mmcsd 0 0:00 0.00% = [mmcsd0boot1: mmc/sd] >> 6 root 1 -16 - 0 16K crypto 0 0:00 0.00% = [crypto returns 3] >> 22 root 3 -16 - 0 48K psleep 3 0:12 0.00% = [pagedaemon] >> 5270 root 1 20 0 14M 3780K CPU2 2 0:00 0.14% = top -Saopid >> 662 root 1 20 0 11M 680K select 0 0:00 0.00% = /usr/sbin/rpcbind >> 7 root 2 -16 - 0 32K - 0 0:00 0.00% = [cam] >> 23 root 1 -16 - 0 16K psleep 2 0:00 0.00% = [vmdaemon] >> 5255 root 1 20 0 12M 3092K wait 0 0:00 0.00% = -sh (sh) >> 8 root 1 -16 - 0 16K waitin 0 0:00 0.00% = [sctp_iterator] >> 24 root 3 -16 - 0 48K qsleep 3 0:12 0.01% = [bufdaemon] >> 712 root 1 52 0 12M 616K select 0 0:00 0.00% = /usr/sbin/mountd -r >> 9 root 1 -16 - 0 16K - 1 0:04 0.00% = [rand_harvestq] >> 25 root 1 20 - 0 16K vlruwt 0 0:04 0.00% = [vnlru] >> 10 root 1 -16 - 0 16K audit_ 0 0:00 0.00% = [audit] >> 26 root 1 16 - 0 16K syncer 0 1:45 0.00% = [syncer] >> 714 root 1 52 0 12M 728K select 3 0:00 0.00% = nfsd: master (nfsd) >> 11 root 4 155 ki31 0 64K CPU0 0 144.6H 397.09% = [idle] >> 235 root 1 20 0 11M 564K select 3 0:00 0.00% = dhclient: system.syslog (dhclient) >> 715 root 32 52 0 11M 1120K rpcsvc 3 0:00 0.00% = nfsd: server (nfsd) >> 12 root 18 -52 - 0 288K WAIT 2 2:29 1.43% = [intr] >> 412 root 1 20 0 10M 72K select 2 0:00 0.00% = /sbin/devd >> 796 root 1 52 0 20M 672K select 0 0:00 0.00% = /usr/sbin/sshd >> 13 root 3 -8 - 0 48K - 1 0:11 0.00% = [geom] >> 14 root 20 -68 - 0 320K - 0 0:02 0.00% = [usb] >> 238 root 1 52 0 12M 416K select 1 0:00 0.00% = dhclient: awg0 [priv] (dhclient) >> 15 root 1 -16 - 0 16K - 0 0:00 0.00% = [soaiod1] >> 239 _dhcp 1 20 0 12M 484K select 1 0:00 0.00% = dhclient: awg0 (dhclient) >>=20 >> (Basically the Pine64+ 2GB [aarch64] above was idle after boot other = than >> some runs of top.) >>=20 >> I see this oddity across architectures, for example amd64, powerpc64, >> aarch64, armv7. >=20 > No wonder, it doesn't seem to have worked ever (?) as the compare_pid = is > simply not defined in compares list. Try attached patch. > <top.diff> I'm a long term top user and it used to work. For example, when I was = running head -r340287 it worked as I remember. (I recreated such a vintage = recently for a test of something else. The -opid ordering was coherent as I = remember, unlike the above.) It historically seemed to track the time order of process creation, even = around the PID number wrapping around. (So not a strict PID sort, at least for the PID = shown.) This was handy for monitoring buildworld buidkernel and port builds (all = parallel). I'll probably try the patch when I have a chance, even if it does strict = PID number order. Thanks. =3D=3D=3D Mark Millard marklmi at yahoo.com ( dsl-only.net went away in early 2018-Mar)
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?DB7C0654-2017-4F8B-A286-8F67C34253CB>