Download raw body.
tweak uvm view in systat(1)
On Wed, Jan 22, 2025 at 11:33:50AM +0100, Martin Pieuchot wrote:
> 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?
OK claudio@
> 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[] = {
>
>
--
:wq Claudio
tweak uvm view in systat(1)