summaryrefslogtreecommitdiffstats
path: root/sys/vm/uma.h
diff options
context:
space:
mode:
authorjeff <jeff@FreeBSD.org>2013-06-26 00:57:38 +0000
committerjeff <jeff@FreeBSD.org>2013-06-26 00:57:38 +0000
commit4201cd7bd1c5bed3d57c96c4df0cdd038d6125bf (patch)
tree3abaa104be279f9d540f816530d3454d375f3709 /sys/vm/uma.h
parent4dfc3c75a2687795bcf32661c8434cf7628e82a2 (diff)
downloadFreeBSD-src-4201cd7bd1c5bed3d57c96c4df0cdd038d6125bf.zip
FreeBSD-src-4201cd7bd1c5bed3d57c96c4df0cdd038d6125bf.tar.gz
- Resolve bucket recursion issues by passing a cookie with zone flags
through bucket_alloc() to uma_zalloc_arg() and uma_zfree_arg(). - Make some smaller buckets for large zones to further reduce memory waste. - Implement uma_zone_reserve(). This holds aside a number of items only for callers who specify M_USE_RESERVE. buckets will never be filled from reserve allocations. Sponsored by: EMC / Isilon Storage Division
Diffstat (limited to 'sys/vm/uma.h')
-rw-r--r--sys/vm/uma.h6
1 files changed, 6 insertions, 0 deletions
diff --git a/sys/vm/uma.h b/sys/vm/uma.h
index 91bd6a5..b4fb4e8 100644
--- a/sys/vm/uma.h
+++ b/sys/vm/uma.h
@@ -459,6 +459,12 @@ void uma_reclaim(void);
void uma_set_align(int align);
/*
+ * Set a reserved number of items to hold for M_USE_RESERVE allocations. All
+ * other requests must allocate new backing pages.
+ */
+void uma_zone_reserve(uma_zone_t zone, int nitems);
+
+/*
* Reserves the maximum KVA space required by the zone and configures the zone
* to use a VM_ALLOC_NOOBJ-based backend allocator.
*
OpenPOWER on IntegriCloud