Add the laundry page count to the displays of systat, top, and vmstat.

Reviewed by:	alc, kib
Differential Revision:	https://reviews.freebsd.org/D8467
This commit is contained in:
Mark Johnston 2016-11-10 19:55:45 +00:00
parent 0ef0edf2bb
commit cc59e3a79b
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=308489
5 changed files with 23 additions and 22 deletions

View file

@ -28,7 +28,7 @@
.\" @(#)systat.1 8.2 (Berkeley) 12/30/93
.\" $FreeBSD$
.\"
.Dd October 24, 2015
.Dd November 10, 2016
.Dt SYSTAT 1
.Os
.Sh NAME
@ -411,7 +411,7 @@ as amounts of memory in kilobytes,
pages wired down (`wire'),
active pages (`act'),
inactive pages (`inact'),
pages on the cache queue (`cache'),
dirty pages queued for laundering (`laund'),
and
free pages (`free').
Note that the values displayed are the current transient ones;

View file

@ -92,7 +92,7 @@ static struct Info {
u_int v_vnodepgsin; /* vnode_pager pages paged in */
u_int v_vnodepgsout; /* vnode pager pages paged out */
u_int v_intrans; /* intransit blocking page faults */
u_int v_reactivated; /* number of pages reactivated from free list */
u_int v_reactivated; /* number of pages reactivated by pagedaemon */
u_int v_pdwakeups; /* number of times daemon has awaken from sleep */
u_int v_pdpages; /* number of pages analyzed by daemon */
@ -107,7 +107,7 @@ static struct Info {
u_int v_wire_count; /* number of pages wired down */
u_int v_active_count; /* number of pages active */
u_int v_inactive_count; /* number of pages inactive */
u_int v_cache_count; /* number of pages on buffer cache queue */
u_int v_laundry_count; /* number of pages in laundry queue */
u_long v_kmem_map_size; /* Current kmem allocation size */
struct vmtotal Total;
struct nchstats nchstats;
@ -343,7 +343,7 @@ labelkre(void)
mvprintw(VMSTATROW + 12, VMSTATCOL + 9, "wire");
mvprintw(VMSTATROW + 13, VMSTATCOL + 9, "act");
mvprintw(VMSTATROW + 14, VMSTATCOL + 9, "inact");
mvprintw(VMSTATROW + 15, VMSTATCOL + 9, "cache");
mvprintw(VMSTATROW + 15, VMSTATCOL + 9, "laund");
mvprintw(VMSTATROW + 16, VMSTATCOL + 9, "free");
if (LINES - 1 > VMSTATROW + 17)
mvprintw(VMSTATROW + 17, VMSTATCOL + 9, "buf");
@ -519,7 +519,7 @@ showkre(void)
putint(pgtokb(s.v_wire_count), VMSTATROW + 12, VMSTATCOL, 8);
putint(pgtokb(s.v_active_count), VMSTATROW + 13, VMSTATCOL, 8);
putint(pgtokb(s.v_inactive_count), VMSTATROW + 14, VMSTATCOL, 8);
putint(pgtokb(s.v_cache_count), VMSTATROW + 15, VMSTATCOL, 8);
putint(pgtokb(s.v_laundry_count), VMSTATROW + 15, VMSTATCOL, 8);
putint(pgtokb(s.v_free_count), VMSTATROW + 16, VMSTATCOL, 8);
if (LINES - 1 > VMSTATROW + 17)
putint(s.bufspace / 1024, VMSTATROW + 17, VMSTATCOL, 8);
@ -794,7 +794,7 @@ getinfo(struct Info *ls)
GETSYSCTL("vm.stats.vm.v_wire_count", ls->v_wire_count);
GETSYSCTL("vm.stats.vm.v_active_count", ls->v_active_count);
GETSYSCTL("vm.stats.vm.v_inactive_count", ls->v_inactive_count);
GETSYSCTL("vm.stats.vm.v_cache_count", ls->v_cache_count);
GETSYSCTL("vm.stats.vm.v_laundry_count", ls->v_laundry_count);
GETSYSCTL("vfs.bufspace", ls->bufspace);
GETSYSCTL("kern.maxvnodes", ls->desiredvnodes);
GETSYSCTL("vfs.numvnodes", ls->numvnodes);

View file

@ -178,7 +178,7 @@ char *cpustatenames[] = {
int memory_stats[7];
char *memorynames[] = {
"K Active, ", "K Inact, ", "K Wired, ", "K Cache, ", "K Buf, ",
"K Active, ", "K Inact, ", "K Laundry, ", "K Wired, ", "K Buf, ",
"K Free", NULL
};
@ -503,8 +503,8 @@ get_system_info(struct system_info *si)
GETSYSCTL("vfs.bufspace", bufspace);
GETSYSCTL("vm.stats.vm.v_active_count", memory_stats[0]);
GETSYSCTL("vm.stats.vm.v_inactive_count", memory_stats[1]);
GETSYSCTL("vm.stats.vm.v_wire_count", memory_stats[2]);
GETSYSCTL("vm.stats.vm.v_cache_count", memory_stats[3]);
GETSYSCTL("vm.stats.vm.v_laundry_count", memory_stats[2]);
GETSYSCTL("vm.stats.vm.v_wire_count", memory_stats[3]);
GETSYSCTL("vm.stats.vm.v_free_count", memory_stats[5]);
GETSYSCTL("vm.stats.vm.v_swappgsin", nspgsin);
GETSYSCTL("vm.stats.vm.v_swappgsout", nspgsout);

View file

@ -2,8 +2,8 @@
.SH "FreeBSD NOTES"
.SH DESCRIPTION OF MEMORY
Mem: 9220K Active, 1M Inact, 3284K Wired, 1M Cache, 2M Buf, 1320K Free
ARC: 2048K Total, 342K MRU, 760K MFU, 272K Anon, 232K Header, 442K Other
Mem: 9220K Active, 1M Inact, 1M Laundry, 3284K Wired, 2M Buf, 932K Free
ARC: 2048K Total, 342K MRU, 760K MFU, 272K Anon, 96K Header, 442K Other
Swap: 91M Total, 79M Free, 13% Inuse, 80K In, 104K Out
.TP
.B K:
@ -23,15 +23,14 @@ Gigabyte
number of bytes active
.TP
.B Inact:
number of bytes inactive
number of clean bytes inactive
.TP
.B Laundry:
number of dirty bytes queued for laundering
.TP
.B Wired:
number of bytes wired down, including BIO-level cached file data pages
.TP
.B Cache:
number of clean bytes caching data that are available for
immediate reallocation
.TP
.B Buf:
number of bytes used for BIO-level disk caching
.TP

View file

@ -567,7 +567,7 @@ fill_vmmeter(struct vmmeter *vmmp)
GET_VM_STATS(vm, v_reactivated);
GET_VM_STATS(vm, v_pdwakeups);
GET_VM_STATS(vm, v_pdpages);
GET_VM_STATS(vm, v_tcached);
GET_VM_STATS(vm, v_pdshortfalls);
GET_VM_STATS(vm, v_dfree);
GET_VM_STATS(vm, v_pfree);
GET_VM_STATS(vm, v_tfree);
@ -581,7 +581,7 @@ fill_vmmeter(struct vmmeter *vmmp)
GET_VM_STATS(vm, v_active_count);
GET_VM_STATS(vm, v_inactive_target);
GET_VM_STATS(vm, v_inactive_count);
GET_VM_STATS(vm, v_cache_count);
GET_VM_STATS(vm, v_laundry_count);
GET_VM_STATS(vm, v_pageout_free_min);
GET_VM_STATS(vm, v_interrupt_free_min);
/*GET_VM_STATS(vm, v_free_severe);*/
@ -1059,7 +1059,9 @@ dosum(void)
sum.v_pdwakeups);
xo_emit("{:page-daemon-pages/%9u} {N:pages examined by the page daemon}\n",
sum.v_pdpages);
xo_emit("{:reactivated/%9u} {N:pages reactivated}\n",
xo_emit("{:page-reclamation-shortfalls/%9u} {N:clean page reclamation shortfalls}\n",
sum.v_pdshortfalls);
xo_emit("{:reactivated/%9u} {N:pages reactivated by the page daemon}\n",
sum.v_reactivated);
xo_emit("{:copy-on-write-faults/%9u} {N:copy-on-write faults}\n",
sum.v_cow_faults);
@ -1095,8 +1097,8 @@ dosum(void)
sum.v_active_count);
xo_emit("{:inactive-pages/%9u} {N:pages inactive}\n",
sum.v_inactive_count);
xo_emit("{:vm-cache/%9u} {N:pages in VM cache}\n",
sum.v_cache_count);
xo_emit("{:laundry-pages/%9u} {N:pages in the laundry queue}\n",
sum.v_laundry_count);
xo_emit("{:wired-pages/%9u} {N:pages wired down}\n",
sum.v_wire_count);
xo_emit("{:free-pages/%9u} {N:pages free}\n",