NetBSD-Bugs archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
bin/60440: systat vmstat SysCal field can overflow
>Number: 60440
>Category: bin
>Synopsis: systat vmstat SysCal field can overflow
>Confidential: no
>Severity: non-critical
>Priority: medium
>Responsible: bin-bug-people
>State: open
>Class: change-request
>Submitter-Id: net
>Arrival-Date: Sat Jul 11 13:30:01 +0000 2026
>Originator: Havard Eidnes
>Release: NetBSD 10.1
>Organization:
I try...
>Environment:
System: NetBSD castor.urc.uninett.no 10.1 NetBSD 10.1 (GENERIC) #0: Mon Dec 16 13:08:11 UTC 2024 mkrepro%mkrepro.NetBSD.org@localhost:/usr/src/sys/arch/amd64/compile/GENERIC amd64
Architecture: x86_64
Machine: amd64
>Description:
The display of number of syscalls (per second?) in "systat
vm" output can overflow, resulting in a display containing e.g.
Proc:r d s Csw Traps SysCal Intr Soft Fault PAGING SWAPPING
11 2 20 623 1637 ****** 269 457 1637 in out in out
I would much prefer that the value is shown, scaled, e.g.
Proc:r d s Csw Traps SysCal Intr Soft Fault PAGING SWAPPING
10 2 16 654 210 3804K 63 453 210 in out in out
>How-To-Repeat:
Run "systat vm" on a reasonably high-end amd64 system, loaded
with activity (e.g. a rust build with high MAKE_JOBS setting).
This is especially visible during periods when rust-installer is run.
>Fix:
It turns out this is fixable by removing code.
Why the "time-based" values are not scaled? Don't know,
but it looks like the code was made this way conciously.
Is this a reasonable change?
Index: vmstat.c
===================================================================
RCS file: /cvsroot/src/usr.bin/systat/vmstat.c,v
retrieving revision 1.92
diff -u -r1.92 vmstat.c
--- vmstat.c 28 Mar 2023 00:00:30 -0000 1.92
+++ vmstat.c 11 Jul 2026 13:14:24 -0000
@@ -783,10 +783,7 @@
}
(void)snprintf(b, sizeof b, "%*d", w, n);
if ((int)strlen(b) > w) {
- if (display_mode == TIME)
- hline('*', w);
- else
- puthumanint(n, l, c, w);
+ puthumanint(n, l, c, w);
return;
}
addstr(b);
Home |
Main Index |
Thread Index |
Old Index