summaryrefslogtreecommitdiff
path: root/usr/src/uts/common/vm/page_lock.c
diff options
context:
space:
mode:
authorPeter Rival <Frank.Rival@oracle.com>2010-04-23 13:26:05 -0400
committerPeter Rival <Frank.Rival@oracle.com>2010-04-23 13:26:05 -0400
commitcb15d5d96b3b2730714c28bfe06cfe7421758b8c (patch)
tree7fd5c3cf5bb49647be8b2eb022e8d75a7d78eab5 /usr/src/uts/common/vm/page_lock.c
parent03c76a6ef5c04e818b6badeeb6155961505af45c (diff)
downloadillumos-joyent-cb15d5d96b3b2730714c28bfe06cfe7421758b8c.tar.gz
6778289 vm locks need to scale with the size of system (strands/memory size)
Diffstat (limited to 'usr/src/uts/common/vm/page_lock.c')
-rw-r--r--usr/src/uts/common/vm/page_lock.c15
1 files changed, 5 insertions, 10 deletions
diff --git a/usr/src/uts/common/vm/page_lock.c b/usr/src/uts/common/vm/page_lock.c
index 8003884652..7e48602189 100644
--- a/usr/src/uts/common/vm/page_lock.c
+++ b/usr/src/uts/common/vm/page_lock.c
@@ -19,8 +19,7 @@
* CDDL HEADER END
*/
/*
- * Copyright 2009 Sun Microsystems, Inc. All rights reserved.
- * Use is subject to license terms.
+ * Copyright (c) 1991, 2010, Oracle and/or its affiliates. All rights reserved.
*/
@@ -42,14 +41,14 @@
#include <vm/seg_kmem.h>
/*
- * This global mutex is for logical page locking.
+ * This global mutex array is for logical page locking.
* The following fields in the page structure are protected
* by this lock:
*
* p_lckcnt
* p_cowcnt
*/
-kmutex_t page_llock;
+pad_mutex_t page_llocks[8 * NCPU_P2];
/*
* This is a global lock for the logical page free list. The
@@ -127,14 +126,10 @@ static pad_mutex_t pszc_mutex[PSZC_MTX_TABLE_SIZE];
* an address of a vnode.
*/
-/*
- * XX64 VPH_TABLE_SIZE and VP_HASH_FUNC might break in 64 bit world.
- * Need to review again.
- */
#if defined(_LP64)
-#define VPH_TABLE_SIZE (1 << (VP_SHIFT + 3))
+#define VPH_TABLE_SIZE (8 * NCPU_P2)
#else /* 32 bits */
-#define VPH_TABLE_SIZE (2 << VP_SHIFT)
+#define VPH_TABLE_SIZE (2 * NCPU_P2)
#endif
#define VP_HASH_FUNC(vp) \