Download raw body.
tweak uvm view in systat(1)
Diff below makes some room in the UVM view of systat(1) for upcoming
counters related to running the fault handler in parallel.
The following values, unused on OpenBSD, are no longer displayed:
- `anonmin', `vtextmin', `vnodemin', `anonminpct', `vtextminpct', `vnodeminpct'
The following value, currently displayed twice, is now printed only in the
"Swap Counters" section:
- `swpgonly'
The "Per-CPU Counters" is moved around to allow the "Fault Counters"
block to grow. While here, also document this section.
===============
Before:
=======
3 users Load 2.08 1.99 2.08 (1-21 of 31) oliva.grenadille.ne 11:17:15
===== Page Counters ===== Stats Counters ===== Fault Counters
1887K npages 5109K FAULTS fltnoram
642868 FREE 5298K TRAPS fltnoanon
326792 ACTIVE 1248K intrs fltnoamap
271567 inactive 5475K swtch fltpgwait
paging 3072K softs fltpgrele
71540 wired 14008K SYSCALLS 1091K fltrelck
80414 zeropages pageins 1070K fltrelckok
34 percpucaches pgswapin 995K FLTANGET
pgswapout fltanretry
6563 forks 306939 FLTAMCOPY
===== Pageout Params 14 forks_ppwait 177678 fltnamap
64427 freemin 4690 forks_sharevm 1070K FLTNOMAP
85902 freetarg 39105 pga_zerohit 1522K FLTLGET
inactarg 36250 pga_zeromiss 1092K fltget
644277 wiredmax 958008 FLT_ANON
anonmin ===== Daemon Counters 61851 flt_acow
vtextmin pdwoke 1397K FLT_OBJ
vnodemin pdrevs 105328 flt_prcopy
anonminpct pdswout 2609K FLT_PRZERO
vtextminpct swpgonly
vnodeminpct pdfreed ===== Swap Counters
pdscans 1 nswapdev
===== Misc Counters pdanscan 2028K swpages
fpswtch pdobscan swpginuse
21 KMAPENT pdreact swpgonly
pdbusy nswget
===== Constants pdpageouts
4096 pagesize pdpending ===== Per-CPU Counters
4095 pagemask pddeact 3984K PCPHIT
12 pageshift 562403 PCPMISS
==============
After:
======
3 users Load 2.35 2.21 2.14 (1-21 of 31) oliva.grenadille.ne 11:23:57
===== Page Counters ===== Stats Counters ===== Fault Counters
1887K npages 5452K FAULTS fltnoram
636129 FREE 5649K TRAPS fltnoanon
330906 ACTIVE 1284K intrs fltnoamap
271515 inactive 5673K swtch fltpgwait
paging 3127K softs fltpgrele
74099 wired 14552K SYSCALLS 1174K fltrelck
79954 zeropages pageins 1152K fltrelckok
20 PERCPUCACHES pgswapin 1023K FLTANGET
pgswapout fltanretry
6726 forks 323942 FLTAMCOPY
===== Pageout Params 14 forks_ppwait 186437 fltnamap
64427 freemin 4775 forks_sharevm 1140K FLTNOMAP
85902 freetarg 40035 pga_zerohit 1626K FLTLGET
inactarg 36298 pga_zeromiss 1174K fltget
644277 wiredmax 983704 FLT_ANON
63891 flt_acow
===== Daemon Counters 1499K FLT_OBJ
===== Per-CPU Counters pdwoke 106635 flt_prcopy
4277K PCPHIT pdrevs 2823K FLT_PRZERO
604650 PCPMISS pdswout
pdfreed
pdscans
===== Misc Counters pdanscan
fpswtch pdobscan
21 KMAPENT pdreact ===== Swap Counters
pdbusy 1 nswapdev
===== Constants pdpageouts 2028K swpages
4096 pagesize pdpending swpginuse
4095 pagemask pddeact swpgonly
12 pageshift nswget
Ok?
Index: systat.1
===================================================================
RCS file: /cvs/src/usr.bin/systat/systat.1,v
diff -u -p -r1.123 systat.1
--- systat.1 25 Sep 2024 06:13:01 -0000 1.123
+++ systat.1 22 Jan 2025 10:25:09 -0000
@@ -687,18 +687,12 @@ target number of free pages
target number of inactive pages
.It wiredmax
maximum number of wired pages
-.It anonmin
-minimum threshold for anon pages
-.It vtextmin
-minimum threshold for vtext pages
-.It vnodemin
-minimum threshold for vnode pages
-.It anonminpct
-minimum percent anon pages
-.It vtextminpct
-minimum percent vtext pages
-.It vnodeminpct
-minimum percent vnode pages
+.Pp
+.It Per-CPU Counters:
+.It pcphit
+pages allocated from a per-CPU cache since boot
+.It pcpmiss
+times a per-CPU cache was empty when allocating a page
.Pp
.It Swap Counters:
.It nswapdev
Index: uvm.c
===================================================================
RCS file: /cvs/src/usr.bin/systat/uvm.c,v
diff -u -p -r1.10 uvm.c
--- uvm.c 18 May 2024 09:02:34 -0000 1.10
+++ uvm.c 22 Jan 2025 10:11:17 -0000
@@ -103,51 +103,51 @@ struct uvmline uvmline[] = {
{ &uvmexp.wiredmax, &last_uvmexp.wiredmax, "wiredmax",
NULL, NULL, NULL,
&uvmexp.flt_anon, &last_uvmexp.flt_anon, "flt_anon" },
- { &uvmexp.anonmin, &last_uvmexp.anonmin, "anonmin",
- NULL, NULL, "Daemon Counters",
+ { NULL, NULL, NULL,
+ NULL, NULL, NULL,
&uvmexp.flt_acow, &last_uvmexp.flt_acow, "flt_acow" },
- { &uvmexp.vtextmin, &last_uvmexp.vtextmin, "vtextmin",
- &uvmexp.pdwoke, &last_uvmexp.pdwoke, "pdwoke",
+ { NULL, NULL, NULL,
+ NULL, NULL, "Daemon Counters",
&uvmexp.flt_obj, &last_uvmexp.flt_obj, "flt_obj" },
- { &uvmexp.vnodemin, &last_uvmexp.vnodemin, "vnodemin",
- &uvmexp.pdrevs, &last_uvmexp.pdrevs, "pdrevs",
+ { NULL, NULL, "Per-CPU Counters",
+ &uvmexp.pdwoke, &last_uvmexp.pdwoke, "pdwoke",
&uvmexp.flt_prcopy, &last_uvmexp.flt_prcopy, "flt_prcopy" },
- { &uvmexp.anonminpct, &last_uvmexp.anonminpct, "anonminpct",
- &uvmexp.pdswout, &last_uvmexp.pdswout, "pdswout",
+ { &uvmexp.pcphit, &last_uvmexp.pcphit, "pcphit",
+ &uvmexp.pdrevs, &last_uvmexp.pdrevs, "pdrevs",
&uvmexp.flt_przero, &last_uvmexp.flt_przero, "flt_przero" },
- { &uvmexp.vtextminpct, &last_uvmexp.vtextminpct, "vtextminpct",
- &uvmexp.swpgonly, &last_uvmexp.swpgonly, "swpgonly",
+ { &uvmexp.pcpmiss, &last_uvmexp.pcpmiss, "pcpmiss",
+ &uvmexp.pdswout, &last_uvmexp.pdswout, "pdswout",
NULL, NULL, NULL },
- { &uvmexp.vnodeminpct, &last_uvmexp.vnodeminpct, "vnodeminpct",
+ { NULL, NULL, NULL,
&uvmexp.pdfreed, &last_uvmexp.pdfreed, "pdfreed",
- NULL, NULL, "Swap Counters" },
+ NULL, NULL, NULL },
{ NULL, NULL, NULL,
&uvmexp.pdscans, &last_uvmexp.pdscans, "pdscans",
- &uvmexp.nswapdev, &last_uvmexp.nswapdev, "nswapdev" },
+ NULL, NULL, NULL },
{ NULL, NULL, "Misc Counters",
&uvmexp.pdanscan, &last_uvmexp.pdanscan, "pdanscan",
- &uvmexp.swpages, &last_uvmexp.swpages, "swpages" },
+ NULL, NULL, NULL },
{ &uvmexp.fpswtch, &last_uvmexp.fpswtch, "fpswtch",
&uvmexp.pdobscan, &last_uvmexp.pdobscan, "pdobscan",
- &uvmexp.swpginuse, &last_uvmexp.swpginuse, "swpginuse" },
+ NULL, NULL, NULL },
{ &uvmexp.kmapent, &last_uvmexp.kmapent, "kmapent",
&uvmexp.pdreact, &last_uvmexp.pdreact, "pdreact",
- &uvmexp.swpgonly, &last_uvmexp.swpgonly, "swpgonly" },
+ NULL, NULL, "Swap Counters" },
{ NULL, NULL, NULL,
&uvmexp.pdbusy, &last_uvmexp.pdbusy, "pdbusy",
- &uvmexp.nswget, &last_uvmexp.nswget, "nswget" },
+ &uvmexp.nswapdev, &last_uvmexp.nswapdev, "nswapdev" },
{ NULL, NULL, "Constants",
&uvmexp.pdpageouts, &last_uvmexp.pdpageouts, "pdpageouts",
- NULL, NULL, NULL },
+ &uvmexp.swpages, &last_uvmexp.swpages, "swpages" },
{ &uvmexp.pagesize, &last_uvmexp.pagesize, "pagesize",
&uvmexp.pdpending, &last_uvmexp.pdpending, "pdpending",
- NULL, NULL, "Per-CPU Counters" },
+ &uvmexp.swpginuse, &last_uvmexp.swpginuse, "swpginuse" },
{ &uvmexp.pagemask, &last_uvmexp.pagemask, "pagemask",
&uvmexp.pddeact, &last_uvmexp.pddeact, "pddeact",
- &uvmexp.pcphit, &last_uvmexp.pcphit, "pcphit" },
+ &uvmexp.swpgonly, &last_uvmexp.swpgonly, "swpgonly" },
{ &uvmexp.pageshift, &last_uvmexp.pageshift, "pageshift",
NULL, NULL, NULL,
- &uvmexp.pcpmiss, &last_uvmexp.pcpmiss, "pcpmiss" }
+ &uvmexp.nswget, &last_uvmexp.nswget, "nswget" }
};
field_def fields_uvm[] = {
tweak uvm view in systat(1)