svn commit: r205053 - in user/kmacy/head_page_lock/sys:
amd64/include vm
Kip Macy
kmacy at FreeBSD.org
Thu Mar 11 23:27:17 UTC 2010
Author: kmacy
Date: Thu Mar 11 23:27:16 2010
New Revision: 205053
URL: http://svn.freebsd.org/changeset/base/205053
Log:
alias page lock to page queue lock for architectures with pmaps without page lock
Modified:
user/kmacy/head_page_lock/sys/amd64/include/vmparam.h
user/kmacy/head_page_lock/sys/vm/vm_page.h
Modified: user/kmacy/head_page_lock/sys/amd64/include/vmparam.h
==============================================================================
--- user/kmacy/head_page_lock/sys/amd64/include/vmparam.h Thu Mar 11 23:05:13 2010 (r205052)
+++ user/kmacy/head_page_lock/sys/amd64/include/vmparam.h Thu Mar 11 23:27:16 2010 (r205053)
@@ -88,6 +88,12 @@
#define UMA_MD_SMALL_ALLOC
/*
+ * We support hashing pages to an entry in array of locks on amd64
+ */
+
+#define VM_PAGE_LOCK
+
+/*
* The physical address space is densely populated.
*/
#define VM_PHYSSEG_DENSE
Modified: user/kmacy/head_page_lock/sys/vm/vm_page.h
==============================================================================
--- user/kmacy/head_page_lock/sys/vm/vm_page.h Thu Mar 11 23:05:13 2010 (r205052)
+++ user/kmacy/head_page_lock/sys/vm/vm_page.h Thu Mar 11 23:27:16 2010 (r205053)
@@ -273,11 +273,20 @@ extern struct vpglocks vm_page_queue_loc
#define vm_page_unlock_queues() mtx_unlock(&vm_page_queue_mtx)
#define vm_page_trylock_queues() mtx_trylock(&vm_page_queue_mtx)
+#ifdef VM_PAGE_LOCK
#define vm_page_lockptr(m) pmap_page_lockptr(m)
#define vm_page_lock(m) mtx_lock(vm_page_lockptr((m)))
#define vm_page_unlock(m) mtx_unlock(vm_page_lockptr((m)))
#define vm_page_trylock(m) mtx_trylock(vm_page_lockptr((m)))
#define vm_page_lock_assert(m, a) mtx_assert(vm_page_lockptr((m)), (a))
+#else
+#define vm_page_lockptr(m) (&vm_page_queue_mtx)
+#define vm_page_lock(m) mtx_lock(vm_page_lockptr((m)))
+#define vm_page_unlock(m) mtx_unlock(vm_page_lockptr((m)))
+#define vm_page_trylock(m) mtx_trylock(vm_page_lockptr((m)))
+#define vm_page_lock_assert(m, a) mtx_assert(vm_page_lockptr((m)), (a))
+#endif
+
#if PAGE_SIZE == 4096
#define VM_PAGE_BITS_ALL 0xffu
More information about the svn-src-user
mailing list