Date: Mon, 13 May 2013 02:38:05 +0000 (UTC) From: Attilio Rao <attilio@FreeBSD.org> To: src-committers@freebsd.org, svn-src-user@freebsd.org Subject: svn commit: r250588 - user/attilio/jeff-numa/sys/vm Message-ID: <201305130238.r4D2c5Pg092936@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: attilio Date: Mon May 13 02:38:05 2013 New Revision: 250588 URL: http://svnweb.freebsd.org/changeset/base/250588 Log: Report the number of free pages broken per domain and not in unified way. This helps in showing the free pages distribution. Sync DDB output with it. Sponsored by: EMC / Isilon storage division Requested by: alc Modified: user/attilio/jeff-numa/sys/vm/vm_phys.c Modified: user/attilio/jeff-numa/sys/vm/vm_phys.c ============================================================================== --- user/attilio/jeff-numa/sys/vm/vm_phys.c Mon May 13 01:28:09 2013 (r250587) +++ user/attilio/jeff-numa/sys/vm/vm_phys.c Mon May 13 02:38:05 2013 (r250588) @@ -148,33 +148,38 @@ static int sysctl_vm_phys_free(SYSCTL_HANDLER_ARGS) { struct sbuf sbuf; - int dom, error, flind, lcnt, oind, pind; + struct vm_freelist *fl; + int dom, error, flind, oind, pind; error = sysctl_wire_old_buffer(req, 0); if (error != 0) return (error); - sbuf_new_for_sysctl(&sbuf, NULL, 128, req); - for (flind = 0; flind < vm_nfreelists; flind++) { - sbuf_printf(&sbuf, "\nFREE LIST %d:\n" - "\n ORDER (SIZE) | NUMBER" - "\n ", flind); - for (pind = 0; pind < VM_NFREEPOOL; pind++) - sbuf_printf(&sbuf, " | POOL %d", pind); - sbuf_printf(&sbuf, "\n-- "); - for (pind = 0; pind < VM_NFREEPOOL; pind++) - sbuf_printf(&sbuf, "-- -- "); - sbuf_printf(&sbuf, "--\n"); - for (oind = VM_NFREEORDER - 1; oind >= 0; oind--) { - sbuf_printf(&sbuf, " %2d (%6dK)", oind, - 1 << (PAGE_SHIFT - 10 + oind)); - for (pind = 0; pind < VM_NFREEPOOL; pind++) { - lcnt = 0; - for (dom = 0; dom < vm_ndomains; dom++) - lcnt += vm_phys_free_queues[dom][flind][pind][oind].lcnt; - sbuf_printf(&sbuf, " | %6d", lcnt); + sbuf_new_for_sysctl(&sbuf, NULL, 128 * vm_ndomains, req); + for (dom = 0; dom < vm_ndomains; dom++) { + sbuf_printf(&sbuf,"DOMAIN: %d\n", dom); + for (flind = 0; flind < vm_nfreelists; flind++) { + sbuf_printf(&sbuf, "FREE LIST %d:\n" + "\n ORDER (SIZE) | NUMBER" + "\n ", flind); + for (pind = 0; pind < VM_NFREEPOOL; pind++) + sbuf_printf(&sbuf, " | POOL %d", pind); + sbuf_printf(&sbuf, "\n-- "); + for (pind = 0; pind < VM_NFREEPOOL; pind++) + sbuf_printf(&sbuf, "-- -- "); + sbuf_printf(&sbuf, "--\n"); + for (oind = VM_NFREEORDER - 1; oind >= 0; oind--) { + sbuf_printf(&sbuf, " %2d (%6dK)", oind, + 1 << (PAGE_SHIFT - 10 + oind)); + for (pind = 0; pind < VM_NFREEPOOL; pind++) { + fl = vm_phys_free_queues[dom][flind][pind]; + sbuf_printf(&sbuf, " | %6.6d", + fl[oind].lcnt); + } + sbuf_printf(&sbuf, "\n"); } sbuf_printf(&sbuf, "\n"); } + sbuf_printf(&sbuf, "\n"); } error = sbuf_finish(&sbuf); sbuf_delete(&sbuf); @@ -957,10 +962,11 @@ DB_SHOW_COMMAND(freepages, db_show_freep int flind, oind, pind, dom; for (dom = 0; dom < vm_ndomains; dom++) { + db_printf("DOMAIN: %d\n", dom); for (flind = 0; flind < vm_nfreelists; flind++) { - db_printf("DOMAIN %d FREE LIST %d:\n" + db_printf("FREE LIST %d:\n" "\n ORDER (SIZE) | NUMBER" - "\n ", dom, flind); + "\n ", flind); for (pind = 0; pind < VM_NFREEPOOL; pind++) db_printf(" | POOL %d", pind); db_printf("\n-- "); @@ -971,13 +977,14 @@ DB_SHOW_COMMAND(freepages, db_show_freep db_printf(" %2.2d (%6.6dK)", oind, 1 << (PAGE_SHIFT - 10 + oind)); for (pind = 0; pind < VM_NFREEPOOL; pind++) { - fl = vm_phys_free_queues[dom][flind][pind]; + fl = vm_phys_free_queues[dom][flind][pind]; db_printf(" | %6.6d", fl[oind].lcnt); } db_printf("\n"); } db_printf("\n"); } + db_printf("\n"); } } #endif
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201305130238.r4D2c5Pg092936>