aboutsummaryrefslogtreecommitdiff
path: root/sys/vm/uma.h
diff options
context:
space:
mode:
authorMohan Srinivasan <mohans@FreeBSD.org>2007-01-25 01:05:23 +0000
committerMohan Srinivasan <mohans@FreeBSD.org>2007-01-25 01:05:23 +0000
commit6c125b8df6750dba0aa916ee7779fe5b20bf63b8 (patch)
tree29d5e3c67fe7103c5fe9363f82111c4d5203c0f7 /sys/vm/uma.h
parentfd7b77628d10ab8e30adb344626665cd6ff61155 (diff)
downloadsrc-6c125b8df6750dba0aa916ee7779fe5b20bf63b8.tar.gz
src-6c125b8df6750dba0aa916ee7779fe5b20bf63b8.zip
Fix for problems that occur when all mbuf clusters migrate to the mbuf packet
zone. Cluster allocations fail when this happens. Also processes that may have blocked on cluster allocations will never be woken up. Thanks to rwatson for an overview of the issue and pointers to the mbuma paper and his tool to dump out UMA zones. Reviewed by: andre@
Notes
Notes: svn path=/head/; revision=166213
Diffstat (limited to 'sys/vm/uma.h')
-rw-r--r--sys/vm/uma.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/sys/vm/uma.h b/sys/vm/uma.h
index 08a55d675e88..002717723369 100644
--- a/sys/vm/uma.h
+++ b/sys/vm/uma.h
@@ -48,6 +48,8 @@ struct uma_zone;
/* Opaque type used as a handle to the zone */
typedef struct uma_zone * uma_zone_t;
+void zone_drain(uma_zone_t);
+
/*
* Item constructor
*
@@ -518,6 +520,7 @@ u_int32_t *uma_find_refcnt(uma_zone_t zone, void *item);
* Non-zero if zone is exhausted.
*/
int uma_zone_exhausted(uma_zone_t zone);
+int uma_zone_exhausted_nolock(uma_zone_t zone);
/*
* Exported statistics structures to be used by user space monitoring tools.