diff options
author | jeff <jeff@FreeBSD.org> | 2013-06-26 00:57:38 +0000 |
---|---|---|
committer | jeff <jeff@FreeBSD.org> | 2013-06-26 00:57:38 +0000 |
commit | 4201cd7bd1c5bed3d57c96c4df0cdd038d6125bf (patch) | |
tree | 3abaa104be279f9d540f816530d3454d375f3709 /sys/vm/uma.h | |
parent | 4dfc3c75a2687795bcf32661c8434cf7628e82a2 (diff) | |
download | FreeBSD-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.h | 6 |
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. * |