Hi tech@, Below is the patch of resetting sysload if sysctl call failed in usr.bin/top/machine.c, otherwise the memory of sysload is undetermined. (The same process as uvmexp and bcstats).
Index: machine.c =================================================================== RCS file: /cvs/src/usr.bin/top/machine.c,v retrieving revision 1.90 diff -u -p -r1.90 machine.c --- machine.c 14 May 2018 12:31:21 -0000 1.90 +++ machine.c 22 May 2018 09:49:39 -0000 @@ -282,8 +282,10 @@ get_system_info(struct system_info *si) } size = sizeof(sysload); - if (sysctl(sysload_mib, 2, &sysload, &size, NULL, 0) < 0) + if (sysctl(sysload_mib, 2, &sysload, &size, NULL, 0) < 0) { warn("sysctl failed"); + bzero(&sysload, sizeof(sysload)); + } infoloadp = si->load_avg; for (i = 0; i < 3; i++) *infoloadp++ = ((double) sysload.ldavg[i]) / sysload.fscale; -- Best Regards Nan Xiao