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