Mark Millard wrote:
> From my from=source 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:
> 
>   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)
> 
> (Basically the Pine64+ 2GB [aarch64] above was idle after boot other than
> some runs of top.)
> 
> I see this oddity across architectures, for example amd64, powerpc64,
> aarch64, armv7.

No wonder, it doesn't seem to have worked ever (?) as the compare_pid is
simply not defined in compares list.  Try attached patch.
diff --git a/usr.bin/top/machine.c b/usr.bin/top/machine.c
index 374c9da0edf4..cd17f2f5dc3a 100644
--- a/usr.bin/top/machine.c
+++ b/usr.bin/top/machine.c
@@ -1511,6 +1511,7 @@ int (*compares[])(const void *arg1, const void *arg2) = {
        compare_ivcsw,
        compare_jid,
        compare_swap,
+       compare_pid,
        NULL
 };
 

Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to