From 54f5cf33fcbe413600625d19bc10a293403c16de Mon Sep 17 00:00:00 2001 From: grehan Date: Wed, 11 Feb 2004 04:42:48 +0000 Subject: Add sysctl hw.uma_mdpages to track how many pages have been allocated by UMA_MD_SMALL_ALLOC --- sys/powerpc/aim/uma_machdep.c | 9 +++++++++ sys/powerpc/powerpc/uma_machdep.c | 9 +++++++++ 2 files changed, 18 insertions(+) (limited to 'sys/powerpc') diff --git a/sys/powerpc/aim/uma_machdep.c b/sys/powerpc/aim/uma_machdep.c index 4d58af8..b471957 100644 --- a/sys/powerpc/aim/uma_machdep.c +++ b/sys/powerpc/aim/uma_machdep.c @@ -28,9 +28,11 @@ __FBSDID("$FreeBSD$"); #include +#include #include #include #include +#include #include #include #include @@ -38,6 +40,10 @@ __FBSDID("$FreeBSD$"); #include #include +static int hw_uma_mdpages; +SYSCTL_INT(_hw, OID_AUTO, uma_mdpages, CTLFLAG_RD, &hw_uma_mdpages, 0, + "UMA MD pages in use"); + void * uma_small_alloc(uma_zone_t zone, int bytes, u_int8_t *flags, int wait) { @@ -67,6 +73,8 @@ uma_small_alloc(uma_zone_t zone, int bytes, u_int8_t *flags, int wait) va = (void *) VM_PAGE_TO_PHYS(m); if ((wait & M_ZERO) && (m->flags & PG_ZERO) == 0) bzero(va, PAGE_SIZE); + atomic_add_int(&hw_uma_mdpages, 1); + return (va); } @@ -79,4 +87,5 @@ uma_small_free(void *mem, int size, u_int8_t flags) vm_page_lock_queues(); vm_page_free(m); vm_page_unlock_queues(); + atomic_subtract_int(&hw_uma_mdpages, 1); } diff --git a/sys/powerpc/powerpc/uma_machdep.c b/sys/powerpc/powerpc/uma_machdep.c index 4d58af8..b471957 100644 --- a/sys/powerpc/powerpc/uma_machdep.c +++ b/sys/powerpc/powerpc/uma_machdep.c @@ -28,9 +28,11 @@ __FBSDID("$FreeBSD$"); #include +#include #include #include #include +#include #include #include #include @@ -38,6 +40,10 @@ __FBSDID("$FreeBSD$"); #include #include +static int hw_uma_mdpages; +SYSCTL_INT(_hw, OID_AUTO, uma_mdpages, CTLFLAG_RD, &hw_uma_mdpages, 0, + "UMA MD pages in use"); + void * uma_small_alloc(uma_zone_t zone, int bytes, u_int8_t *flags, int wait) { @@ -67,6 +73,8 @@ uma_small_alloc(uma_zone_t zone, int bytes, u_int8_t *flags, int wait) va = (void *) VM_PAGE_TO_PHYS(m); if ((wait & M_ZERO) && (m->flags & PG_ZERO) == 0) bzero(va, PAGE_SIZE); + atomic_add_int(&hw_uma_mdpages, 1); + return (va); } @@ -79,4 +87,5 @@ uma_small_free(void *mem, int size, u_int8_t flags) vm_page_lock_queues(); vm_page_free(m); vm_page_unlock_queues(); + atomic_subtract_int(&hw_uma_mdpages, 1); } -- cgit v1.1