summaryrefslogtreecommitdiffstats
path: root/sys/vm/vm_object.h
diff options
context:
space:
mode:
authorattilio <attilio@FreeBSD.org>2013-02-26 23:35:27 +0000
committerattilio <attilio@FreeBSD.org>2013-02-26 23:35:27 +0000
commitcc89d0bd92235897b82b75614fcf8d8f6b33e551 (patch)
tree9899ba247e015337e5b50f08536fdad949aff6ae /sys/vm/vm_object.h
parentfc11335acc0f0255377e8c430cd3dbc31e123d5c (diff)
downloadFreeBSD-src-cc89d0bd92235897b82b75614fcf8d8f6b33e551.zip
FreeBSD-src-cc89d0bd92235897b82b75614fcf8d8f6b33e551.tar.gz
Merge from vmc-playground branch:
Replace the sub-optimal uma_zone_set_obj() primitive with more modern uma_zone_reserve_kva(). The new primitive reserves before hand the necessary KVA space to cater the zone allocations and allocates pages with ALLOC_NOOBJ. More specifically: - uma_zone_reserve_kva() does not need an object to cater the backend allocator. - uma_zone_reserve_kva() can cater M_WAITOK requests, in order to serve zones which need to do uma_prealloc() too. - When possible, uma_zone_reserve_kva() uses directly the direct-mapping by uma_small_alloc() rather than relying on the KVA / offset combination. The removal of the object attribute allows 2 further changes: 1) _vm_object_allocate() becomes static within vm_object.c 2) VM_OBJECT_LOCK_INIT() is removed. This function is replaced by direct calls to mtx_init() as there is no need to export it anymore and the calls aren't either homogeneous anymore: there are now small differences between arguments passed to mtx_init(). Sponsored by: EMC / Isilon storage division Reviewed by: alc (which also offered almost all the comments) Tested by: pho, jhb, davide
Diffstat (limited to 'sys/vm/vm_object.h')
-rw-r--r--sys/vm/vm_object.h4
1 files changed, 0 insertions, 4 deletions
diff --git a/sys/vm/vm_object.h b/sys/vm/vm_object.h
index 0cb63e9..e085929 100644
--- a/sys/vm/vm_object.h
+++ b/sys/vm/vm_object.h
@@ -206,9 +206,6 @@ extern struct vm_object kmem_object_store;
#define VM_OBJECT_LOCK(object) mtx_lock(&(object)->mtx)
#define VM_OBJECT_LOCK_ASSERT(object, type) \
mtx_assert(&(object)->mtx, (type))
-#define VM_OBJECT_LOCK_INIT(object, type) \
- mtx_init(&(object)->mtx, "vm object", \
- (type), MTX_DEF | MTX_DUPOK)
#define VM_OBJECT_LOCKED(object) mtx_owned(&(object)->mtx)
#define VM_OBJECT_SLEEP(object, wchan, pri, wmesg, timo) \
msleep((wchan), &(object)->mtx, (pri), \
@@ -234,7 +231,6 @@ void vm_object_pip_wakeupn(vm_object_t object, short i);
void vm_object_pip_wait(vm_object_t object, char *waitid);
vm_object_t vm_object_allocate (objtype_t, vm_pindex_t);
-void _vm_object_allocate (objtype_t, vm_pindex_t, vm_object_t);
boolean_t vm_object_coalesce(vm_object_t, vm_ooffset_t, vm_size_t, vm_size_t,
boolean_t);
void vm_object_collapse (vm_object_t);
OpenPOWER on IntegriCloud