diff options
author | alc <alc@FreeBSD.org> | 2007-02-25 06:14:58 +0000 |
---|---|---|
committer | alc <alc@FreeBSD.org> | 2007-02-25 06:14:58 +0000 |
commit | 573a964db6deb3f61961bfe0f4586caa6b8cbb9e (patch) | |
tree | 8f61202f24e3670c10df7262f4f001d14fbb32df /sys/vm/vm_map.c | |
parent | 7b83533659e4ccdf5e867d26a2d738717e00f2cc (diff) | |
download | FreeBSD-src-573a964db6deb3f61961bfe0f4586caa6b8cbb9e.zip FreeBSD-src-573a964db6deb3f61961bfe0f4586caa6b8cbb9e.tar.gz |
Change the way that unmanaged pages are created. Specifically,
immediately flag any page that is allocated to a OBJT_PHYS object as
unmanaged in vm_page_alloc() rather than waiting for a later call to
vm_page_unmanage(). This allows for the elimination of some uses of
the page queues lock.
Change the type of the kernel and kmem objects from OBJT_DEFAULT to
OBJT_PHYS. This allows us to take advantage of the above change to
simplify the allocation of unmanaged pages in kmem_alloc() and
kmem_malloc().
Remove vm_page_unmanage(). It is no longer used.
Diffstat (limited to 'sys/vm/vm_map.c')
-rw-r--r-- | sys/vm/vm_map.c | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/sys/vm/vm_map.c b/sys/vm/vm_map.c index 92b1fa9..dc96069 100644 --- a/sys/vm/vm_map.c +++ b/sys/vm/vm_map.c @@ -2269,8 +2269,7 @@ vm_map_entry_delete(vm_map_t map, vm_map_entry_t entry) VM_OBJECT_LOCK(object); if (object->ref_count != 1 && ((object->flags & (OBJ_NOSPLIT|OBJ_ONEMAPPING)) == OBJ_ONEMAPPING || - object == kernel_object || object == kmem_object) && - (object->type == OBJT_DEFAULT || object->type == OBJT_SWAP)) { + object == kernel_object || object == kmem_object)) { vm_object_collapse(object); vm_object_page_remove(object, offidxstart, offidxend, FALSE); if (object->type == OBJT_SWAP) |