summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSamuel Thibault <samuel.thibault@ens-lyon.org>2021-08-21 00:41:16 +0200
committerSamuel Thibault <samuel.thibault@ens-lyon.org>2021-08-21 00:41:16 +0200
commitb5f92696ad2f8cd2d0e1dfd224001e9bdc1d627d (patch)
tree981dd725efdd585a5436c58ed9391948a742ebe5
parentec06b6d64b99bf39dd7728787efc352db3c7cabc (diff)
db show vmstat: also show segments stats
* vm/vm_page.c (db_show_vmstat)
-rw-r--r--vm/vm_page.c23
1 files changed, 23 insertions, 0 deletions
diff --git a/vm/vm_page.c b/vm/vm_page.c
index fa61af85..9c348423 100644
--- a/vm/vm_page.c
+++ b/vm/vm_page.c
@@ -2093,6 +2093,7 @@ vm_page_wait(void (*continuation)(void))
void db_show_vmstat(void)
{
integer_t free_count = vm_page_mem_free();
+ unsigned i;
db_printf("%-20s %10uM\n", "size:",
(free_count + vm_page_active_count +
@@ -2127,5 +2128,27 @@ void db_show_vmstat(void)
vm_object_external_count);
db_printf("%-20s %10uM\n", "cache",
vm_object_external_pages / PAGES_PER_MB);
+
+ db_printf("%-20s %10uM\n", "cache",
+ vm_object_external_pages / PAGES_PER_MB);
+
+ for (i = 0; i < vm_page_segs_size; i++)
+ {
+ db_printf("\nSegment %d:\n", i);
+ db_printf("%-20s %10uM\n", "free:",
+ vm_page_segs[i].nr_free_pages / PAGES_PER_MB);
+ db_printf("%-20s %10uM\n", "min_free:",
+ vm_page_segs[i].min_free_pages / PAGES_PER_MB);
+ db_printf("%-20s %10uM\n", "low_free:",
+ vm_page_segs[i].low_free_pages / PAGES_PER_MB);
+ db_printf("%-20s %10uM\n", "high_free:",
+ vm_page_segs[i].high_free_pages / PAGES_PER_MB);
+ db_printf("%-20s %10uM\n", "active:",
+ vm_page_segs[i].nr_active_pages / PAGES_PER_MB);
+ db_printf("%-20s %10uM\n", "high active:",
+ vm_page_segs[i].high_active_pages / PAGES_PER_MB);
+ db_printf("%-20s %10uM\n", "inactive:",
+ vm_page_segs[i].nr_inactive_pages / PAGES_PER_MB);
+ }
}
#endif /* MACH_KDB */