diff options
| author | johansen <none@none> | 2006-12-19 23:13:06 -0800 |
|---|---|---|
| committer | johansen <none@none> | 2006-12-19 23:13:06 -0800 |
| commit | ad23a2db4cfc94c0ed1d58554479ce8d2e7e5768 (patch) | |
| tree | 0a4ed7a8ade1d77844ef5c2fd2b13b279e0f78d2 /usr/src/uts/common/vm/page_lock.c | |
| parent | 2c40916dd1416413504de4d1054323f2d14dc6e0 (diff) | |
| download | illumos-joyent-ad23a2db4cfc94c0ed1d58554479ce8d2e7e5768.tar.gz | |
4894692 caching data in heap inflates crash dump
6499454 time to increase size of kmem default allocation caches
6499459 vm should stop checking kvp directly
Diffstat (limited to 'usr/src/uts/common/vm/page_lock.c')
| -rw-r--r-- | usr/src/uts/common/vm/page_lock.c | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/usr/src/uts/common/vm/page_lock.c b/usr/src/uts/common/vm/page_lock.c index a1c0b2e065..4dab7c8bc7 100644 --- a/usr/src/uts/common/vm/page_lock.c +++ b/usr/src/uts/common/vm/page_lock.c @@ -142,6 +142,12 @@ static pad_mutex_t pszc_mutex[PSZC_MTX_TABLE_SIZE]; extern struct vnode kvp; +/* + * Two slots after VPH_TABLE_SIZE are reserved in vph_mutex for kernel vnodes. + * The lock for kvp is VPH_TABLE_SIZE + 0, and the lock for zvp is + * VPH_TABLE_SIZE + 1. + */ + kmutex_t vph_mutex[VPH_TABLE_SIZE + 2]; /* @@ -861,6 +867,9 @@ page_vnode_mutex(vnode_t *vp) { if (vp == &kvp) return (&vph_mutex[VPH_TABLE_SIZE + 0]); + + if (vp == &zvp) + return (&vph_mutex[VPH_TABLE_SIZE + 1]); #ifdef DEBUG if (page_vnode_mutex_stress != 0) return (&vph_mutex[0]); @@ -913,7 +922,7 @@ page_szc_lock(page_t *pp) ASSERT(!PP_ISFREE(pp)); ASSERT(pp->p_vnode != NULL); ASSERT(!IS_SWAPFSVP(pp->p_vnode)); - ASSERT(pp->p_vnode != &kvp); + ASSERT(!PP_ISKAS(pp)); again: if (pszc == 0) { |
