summaryrefslogtreecommitdiffstats
path: root/sys/powerpc
diff options
context:
space:
mode:
authorgrehan <grehan@FreeBSD.org>2004-02-11 04:42:48 +0000
committergrehan <grehan@FreeBSD.org>2004-02-11 04:42:48 +0000
commit54f5cf33fcbe413600625d19bc10a293403c16de (patch)
treea9a2c5a2dd71a674ff358d8e8a6409ab408298f5 /sys/powerpc
parent9ce9891eda27e795842235191242d30adbed875f (diff)
downloadFreeBSD-src-54f5cf33fcbe413600625d19bc10a293403c16de.zip
FreeBSD-src-54f5cf33fcbe413600625d19bc10a293403c16de.tar.gz
Add sysctl hw.uma_mdpages to track how many pages have been allocated
by UMA_MD_SMALL_ALLOC
Diffstat (limited to 'sys/powerpc')
-rw-r--r--sys/powerpc/aim/uma_machdep.c9
-rw-r--r--sys/powerpc/powerpc/uma_machdep.c9
2 files changed, 18 insertions, 0 deletions
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 <sys/param.h>
+#include <sys/kernel.h>
#include <sys/lock.h>
#include <sys/mutex.h>
#include <sys/systm.h>
+#include <sys/sysctl.h>
#include <vm/vm.h>
#include <vm/vm_page.h>
#include <vm/vm_pageout.h>
@@ -38,6 +40,10 @@ __FBSDID("$FreeBSD$");
#include <vm/uma_int.h>
#include <machine/vmparam.h>
+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 <sys/param.h>
+#include <sys/kernel.h>
#include <sys/lock.h>
#include <sys/mutex.h>
#include <sys/systm.h>
+#include <sys/sysctl.h>
#include <vm/vm.h>
#include <vm/vm_page.h>
#include <vm/vm_pageout.h>
@@ -38,6 +40,10 @@ __FBSDID("$FreeBSD$");
#include <vm/uma_int.h>
#include <machine/vmparam.h>
+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);
}
OpenPOWER on IntegriCloud