svn commit: r247137 - in user/attilio/vmobj-rwlock/sys: amd64/amd64 arm/arm cddl/compat/opensolaris/kern dev/agp dev/drm2/i915 i386/i386 i386/xen ia64/ia64 kern mips/mips powerpc/aim powerpc/booke ...
Attilio Rao
attilio at FreeBSD.org
Thu Feb 21 21:54:58 UTC 2013
Author: attilio
Date: Thu Feb 21 21:54:53 2013
New Revision: 247137
URL: http://svnweb.freebsd.org/changeset/base/247137
Log:
Hide the details for the assertion for VM_OBJECT_LOCK operations.
Rename current VM_OBJECT_LOCK_ASSERT(foo, RA_WLOCKED) into
VM_OBJECT_ASSERT_WLOCKED(foo)
Sponsored by: EMC / Isilon storage division
Requested by: alc
Modified:
user/attilio/vmobj-rwlock/sys/amd64/amd64/pmap.c
user/attilio/vmobj-rwlock/sys/arm/arm/pmap-v6.c
user/attilio/vmobj-rwlock/sys/arm/arm/pmap.c
user/attilio/vmobj-rwlock/sys/cddl/compat/opensolaris/kern/opensolaris_vm.c
user/attilio/vmobj-rwlock/sys/dev/agp/agp.c
user/attilio/vmobj-rwlock/sys/dev/drm2/i915/i915_gem.c
user/attilio/vmobj-rwlock/sys/i386/i386/pmap.c
user/attilio/vmobj-rwlock/sys/i386/xen/pmap.c
user/attilio/vmobj-rwlock/sys/ia64/ia64/pmap.c
user/attilio/vmobj-rwlock/sys/kern/vfs_bio.c
user/attilio/vmobj-rwlock/sys/kern/vfs_cluster.c
user/attilio/vmobj-rwlock/sys/mips/mips/pmap.c
user/attilio/vmobj-rwlock/sys/powerpc/aim/mmu_oea.c
user/attilio/vmobj-rwlock/sys/powerpc/aim/mmu_oea64.c
user/attilio/vmobj-rwlock/sys/powerpc/booke/pmap.c
user/attilio/vmobj-rwlock/sys/sparc64/sparc64/pmap.c
user/attilio/vmobj-rwlock/sys/vm/device_pager.c
user/attilio/vmobj-rwlock/sys/vm/phys_pager.c
user/attilio/vmobj-rwlock/sys/vm/sg_pager.c
user/attilio/vmobj-rwlock/sys/vm/swap_pager.c
user/attilio/vmobj-rwlock/sys/vm/vm_fault.c
user/attilio/vmobj-rwlock/sys/vm/vm_object.c
user/attilio/vmobj-rwlock/sys/vm/vm_object.h
user/attilio/vmobj-rwlock/sys/vm/vm_page.c
user/attilio/vmobj-rwlock/sys/vm/vm_pageout.c
user/attilio/vmobj-rwlock/sys/vm/vm_pager.c
user/attilio/vmobj-rwlock/sys/vm/vm_pager.h
user/attilio/vmobj-rwlock/sys/vm/vm_reserv.c
user/attilio/vmobj-rwlock/sys/vm/vnode_pager.c
Modified: user/attilio/vmobj-rwlock/sys/amd64/amd64/pmap.c
==============================================================================
--- user/attilio/vmobj-rwlock/sys/amd64/amd64/pmap.c Thu Feb 21 21:48:38 2013 (r247136)
+++ user/attilio/vmobj-rwlock/sys/amd64/amd64/pmap.c Thu Feb 21 21:54:53 2013 (r247137)
@@ -3493,7 +3493,7 @@ pmap_enter(pmap_t pmap, vm_offset_t va,
va >= kmi.clean_eva,
("pmap_enter: managed mapping within the clean submap"));
if ((m->oflags & (VPO_UNMANAGED | VPO_BUSY)) == 0)
- VM_OBJECT_LOCK_ASSERT(m->object, RA_WLOCKED);
+ VM_OBJECT_ASSERT_WLOCKED(m->object);
pa = VM_PAGE_TO_PHYS(m);
newpte = (pt_entry_t)(pa | PG_A | PG_V);
if ((access & VM_PROT_WRITE) != 0)
@@ -3760,7 +3760,7 @@ pmap_enter_object(pmap_t pmap, vm_offset
vm_page_t m, mpte;
vm_pindex_t diff, psize;
- VM_OBJECT_LOCK_ASSERT(m_start->object, RA_WLOCKED);
+ VM_OBJECT_ASSERT_WLOCKED(m_start->object);
psize = atop(end - start);
mpte = NULL;
m = m_start;
@@ -3942,7 +3942,7 @@ pmap_object_init_pt(pmap_t pmap, vm_offs
vm_page_t p, pdpg;
int pat_mode;
- VM_OBJECT_LOCK_ASSERT(object, RA_WLOCKED);
+ VM_OBJECT_ASSERT_WLOCKED(object);
KASSERT(object->type == OBJT_DEVICE || object->type == OBJT_SG,
("pmap_object_init_pt: non-device object"));
if ((addr & (NBPDR - 1)) == 0 && (size & (NBPDR - 1)) == 0) {
@@ -4556,7 +4556,7 @@ pmap_is_modified(vm_page_t m)
* concurrently set while the object is locked. Thus, if PGA_WRITEABLE
* is clear, no PTEs can have PG_M set.
*/
- VM_OBJECT_LOCK_ASSERT(m->object, RA_WLOCKED);
+ VM_OBJECT_ASSERT_WLOCKED(m->object);
if ((m->oflags & VPO_BUSY) == 0 &&
(m->aflags & PGA_WRITEABLE) == 0)
return (FALSE);
@@ -4687,7 +4687,7 @@ pmap_remove_write(vm_page_t m)
* another thread while the object is locked. Thus, if PGA_WRITEABLE
* is clear, no page table entries need updating.
*/
- VM_OBJECT_LOCK_ASSERT(m->object, RA_WLOCKED);
+ VM_OBJECT_ASSERT_WLOCKED(m->object);
if ((m->oflags & VPO_BUSY) == 0 &&
(m->aflags & PGA_WRITEABLE) == 0)
return;
@@ -4831,7 +4831,7 @@ pmap_clear_modify(vm_page_t m)
KASSERT((m->oflags & VPO_UNMANAGED) == 0,
("pmap_clear_modify: page %p is not managed", m));
- VM_OBJECT_LOCK_ASSERT(m->object, RA_WLOCKED);
+ VM_OBJECT_ASSERT_WLOCKED(m->object);
KASSERT((m->oflags & VPO_BUSY) == 0,
("pmap_clear_modify: page %p is busy", m));
Modified: user/attilio/vmobj-rwlock/sys/arm/arm/pmap-v6.c
==============================================================================
--- user/attilio/vmobj-rwlock/sys/arm/arm/pmap-v6.c Thu Feb 21 21:48:38 2013 (r247136)
+++ user/attilio/vmobj-rwlock/sys/arm/arm/pmap-v6.c Thu Feb 21 21:54:53 2013 (r247137)
@@ -2213,7 +2213,7 @@ pmap_object_init_pt(pmap_t pmap, vm_offs
vm_pindex_t pindex, vm_size_t size)
{
- VM_OBJECT_LOCK_ASSERT(object, RA_WLOCKED);
+ VM_OBJECT_ASSERT_WLOCKED(object);
KASSERT(object->type == OBJT_DEVICE || object->type == OBJT_SG,
("pmap_object_init_pt: non-device object"));
}
@@ -3429,7 +3429,7 @@ pmap_clear_modify(vm_page_t m)
KASSERT((m->oflags & VPO_UNMANAGED) == 0,
("pmap_clear_modify: page %p is not managed", m));
- VM_OBJECT_LOCK_ASSERT(m->object, RA_WLOCKED);
+ VM_OBJECT_ASSERT_WLOCKED(m->object);
KASSERT((m->oflags & VPO_BUSY) == 0,
("pmap_clear_modify: page %p is busy", m));
@@ -3476,7 +3476,7 @@ pmap_remove_write(vm_page_t m)
* another thread while the object is locked. Thus, if PGA_WRITEABLE
* is clear, no page table entries need updating.
*/
- VM_OBJECT_LOCK_ASSERT(m->object, RA_WLOCKED);
+ VM_OBJECT_ASSERT_WLOCKED(m->object);
if ((m->oflags & VPO_BUSY) != 0 ||
(m->aflags & PGA_WRITEABLE) != 0)
pmap_clearbit(m, PVF_WRITE);
Modified: user/attilio/vmobj-rwlock/sys/arm/arm/pmap.c
==============================================================================
--- user/attilio/vmobj-rwlock/sys/arm/arm/pmap.c Thu Feb 21 21:48:38 2013 (r247136)
+++ user/attilio/vmobj-rwlock/sys/arm/arm/pmap.c Thu Feb 21 21:54:53 2013 (r247137)
@@ -3007,7 +3007,7 @@ pmap_object_init_pt(pmap_t pmap, vm_offs
vm_pindex_t pindex, vm_size_t size)
{
- VM_OBJECT_LOCK_ASSERT(object, RA_WLOCKED);
+ VM_OBJECT_ASSERT_WLOCKED(object);
KASSERT(object->type == OBJT_DEVICE || object->type == OBJT_SG,
("pmap_object_init_pt: non-device object"));
}
@@ -4462,7 +4462,7 @@ pmap_clear_modify(vm_page_t m)
KASSERT((m->oflags & VPO_UNMANAGED) == 0,
("pmap_clear_modify: page %p is not managed", m));
- VM_OBJECT_LOCK_ASSERT(m->object, RA_WLOCKED);
+ VM_OBJECT_ASSERT_WLOCKED(m->object);
KASSERT((m->oflags & VPO_BUSY) == 0,
("pmap_clear_modify: page %p is busy", m));
@@ -4524,7 +4524,7 @@ pmap_remove_write(vm_page_t m)
* another thread while the object is locked. Thus, if PGA_WRITEABLE
* is clear, no page table entries need updating.
*/
- VM_OBJECT_LOCK_ASSERT(m->object, RA_WLOCKED);
+ VM_OBJECT_ASSERT_WLOCKED(m->object);
if ((m->oflags & VPO_BUSY) != 0 ||
(m->aflags & PGA_WRITEABLE) != 0)
pmap_clearbit(m, PVF_WRITE);
Modified: user/attilio/vmobj-rwlock/sys/cddl/compat/opensolaris/kern/opensolaris_vm.c
==============================================================================
--- user/attilio/vmobj-rwlock/sys/cddl/compat/opensolaris/kern/opensolaris_vm.c Thu Feb 21 21:48:38 2013 (r247136)
+++ user/attilio/vmobj-rwlock/sys/cddl/compat/opensolaris/kern/opensolaris_vm.c Thu Feb 21 21:54:53 2013 (r247137)
@@ -66,7 +66,7 @@ zfs_vmobject_assert_wlocked(vm_object_t
* be too helpful, but it must be an hard function for
* compatibility reasons.
*/
- VM_OBJECT_LOCK_ASSERT(object, RA_WLOCKED);
+ VM_OBJECT_ASSERT_WLOCKED(object);
}
void
Modified: user/attilio/vmobj-rwlock/sys/dev/agp/agp.c
==============================================================================
--- user/attilio/vmobj-rwlock/sys/dev/agp/agp.c Thu Feb 21 21:48:38 2013 (r247136)
+++ user/attilio/vmobj-rwlock/sys/dev/agp/agp.c Thu Feb 21 21:54:53 2013 (r247137)
@@ -623,7 +623,7 @@ agp_generic_bind_memory(device_t dev, st
return 0;
bad:
mtx_unlock(&sc->as_lock);
- VM_OBJECT_LOCK_ASSERT(mem->am_obj, RA_WLOCKED);
+ VM_OBJECT_ASSERT_WLOCKED(mem->am_obj);
for (k = 0; k < mem->am_size; k += PAGE_SIZE) {
m = vm_page_lookup(mem->am_obj, OFF_TO_IDX(k));
if (k >= i)
Modified: user/attilio/vmobj-rwlock/sys/dev/drm2/i915/i915_gem.c
==============================================================================
--- user/attilio/vmobj-rwlock/sys/dev/drm2/i915/i915_gem.c Thu Feb 21 21:48:38 2013 (r247136)
+++ user/attilio/vmobj-rwlock/sys/dev/drm2/i915/i915_gem.c Thu Feb 21 21:54:53 2013 (r247137)
@@ -2488,7 +2488,7 @@ i915_gem_wire_page(vm_object_t object, v
vm_page_t m;
int rv;
- VM_OBJECT_LOCK_ASSERT(object, RA_WLOCKED);
+ VM_OBJECT_ASSERT_WLOCKED(object);
m = vm_page_grab(object, pindex, VM_ALLOC_NORMAL | VM_ALLOC_RETRY);
if (m->valid != VM_PAGE_BITS_ALL) {
if (vm_pager_has_page(object, pindex, NULL, NULL)) {
Modified: user/attilio/vmobj-rwlock/sys/i386/i386/pmap.c
==============================================================================
--- user/attilio/vmobj-rwlock/sys/i386/i386/pmap.c Thu Feb 21 21:48:38 2013 (r247136)
+++ user/attilio/vmobj-rwlock/sys/i386/i386/pmap.c Thu Feb 21 21:54:53 2013 (r247137)
@@ -3457,7 +3457,7 @@ pmap_enter(pmap_t pmap, vm_offset_t va,
("pmap_enter: invalid to pmap_enter page table pages (va: 0x%x)",
va));
if ((m->oflags & (VPO_UNMANAGED | VPO_BUSY)) == 0)
- VM_OBJECT_LOCK_ASSERT(m->object, RA_WLOCKED);
+ VM_OBJECT_ASSERT_WLOCKED(m->object);
mpte = NULL;
@@ -3711,7 +3711,7 @@ pmap_enter_object(pmap_t pmap, vm_offset
vm_page_t m, mpte;
vm_pindex_t diff, psize;
- VM_OBJECT_LOCK_ASSERT(m_start->object, RA_WLOCKED);
+ VM_OBJECT_ASSERT_WLOCKED(m_start->object);
psize = atop(end - start);
mpte = NULL;
m = m_start;
@@ -3889,7 +3889,7 @@ pmap_object_init_pt(pmap_t pmap, vm_offs
vm_page_t p;
int pat_mode;
- VM_OBJECT_LOCK_ASSERT(object, RA_WLOCKED);
+ VM_OBJECT_ASSERT_WLOCKED(object);
KASSERT(object->type == OBJT_DEVICE || object->type == OBJT_SG,
("pmap_object_init_pt: non-device object"));
if (pseflag &&
@@ -4508,7 +4508,7 @@ pmap_is_modified(vm_page_t m)
* concurrently set while the object is locked. Thus, if PGA_WRITEABLE
* is clear, no PTEs can have PG_M set.
*/
- VM_OBJECT_LOCK_ASSERT(m->object, RA_WLOCKED);
+ VM_OBJECT_ASSERT_WLOCKED(m->object);
if ((m->oflags & VPO_BUSY) == 0 &&
(m->aflags & PGA_WRITEABLE) == 0)
return (FALSE);
@@ -4643,7 +4643,7 @@ pmap_remove_write(vm_page_t m)
* another thread while the object is locked. Thus, if PGA_WRITEABLE
* is clear, no page table entries need updating.
*/
- VM_OBJECT_LOCK_ASSERT(m->object, RA_WLOCKED);
+ VM_OBJECT_ASSERT_WLOCKED(m->object);
if ((m->oflags & VPO_BUSY) == 0 &&
(m->aflags & PGA_WRITEABLE) == 0)
return;
@@ -4795,7 +4795,7 @@ pmap_clear_modify(vm_page_t m)
KASSERT((m->oflags & VPO_UNMANAGED) == 0,
("pmap_clear_modify: page %p is not managed", m));
- VM_OBJECT_LOCK_ASSERT(m->object, RA_WLOCKED);
+ VM_OBJECT_ASSERT_WLOCKED(m->object);
KASSERT((m->oflags & VPO_BUSY) == 0,
("pmap_clear_modify: page %p is busy", m));
Modified: user/attilio/vmobj-rwlock/sys/i386/xen/pmap.c
==============================================================================
--- user/attilio/vmobj-rwlock/sys/i386/xen/pmap.c Thu Feb 21 21:48:38 2013 (r247136)
+++ user/attilio/vmobj-rwlock/sys/i386/xen/pmap.c Thu Feb 21 21:54:53 2013 (r247137)
@@ -2667,7 +2667,7 @@ pmap_enter(pmap_t pmap, vm_offset_t va,
("pmap_enter: invalid to pmap_enter page table pages (va: 0x%x)",
va));
if ((m->oflags & (VPO_UNMANAGED | VPO_BUSY)) == 0)
- VM_OBJECT_LOCK_ASSERT(m->object, RA_WLOCKED);
+ VM_OBJECT_ASSERT_WLOCKED(m->object);
mpte = NULL;
@@ -2870,7 +2870,7 @@ pmap_enter_object(pmap_t pmap, vm_offset
multicall_entry_t *mclp = mcl;
int error, count = 0;
- VM_OBJECT_LOCK_ASSERT(m_start->object, RA_WLOCKED);
+ VM_OBJECT_ASSERT_WLOCKED(m_start->object);
psize = atop(end - start);
mpte = NULL;
m = m_start;
@@ -3110,7 +3110,7 @@ pmap_object_init_pt(pmap_t pmap, vm_offs
vm_page_t p;
int pat_mode;
- VM_OBJECT_LOCK_ASSERT(object, RA_WLOCKED);
+ VM_OBJECT_ASSERT_WLOCKED(object);
KASSERT(object->type == OBJT_DEVICE || object->type == OBJT_SG,
("pmap_object_init_pt: non-device object"));
if (pseflag &&
@@ -3656,7 +3656,7 @@ pmap_is_modified(vm_page_t m)
* concurrently set while the object is locked. Thus, if PGA_WRITEABLE
* is clear, no PTEs can have PG_M set.
*/
- VM_OBJECT_LOCK_ASSERT(m->object, RA_WLOCKED);
+ VM_OBJECT_ASSERT_WLOCKED(m->object);
if ((m->oflags & VPO_BUSY) == 0 &&
(m->aflags & PGA_WRITEABLE) == 0)
return (rv);
@@ -3787,7 +3787,7 @@ pmap_remove_write(vm_page_t m)
* another thread while the object is locked. Thus, if PGA_WRITEABLE
* is clear, no page table entries need updating.
*/
- VM_OBJECT_LOCK_ASSERT(m->object, RA_WLOCKED);
+ VM_OBJECT_ASSERT_WLOCKED(m->object);
if ((m->oflags & VPO_BUSY) == 0 &&
(m->aflags & PGA_WRITEABLE) == 0)
return;
@@ -3888,7 +3888,7 @@ pmap_clear_modify(vm_page_t m)
KASSERT((m->oflags & VPO_UNMANAGED) == 0,
("pmap_clear_modify: page %p is not managed", m));
- VM_OBJECT_LOCK_ASSERT(m->object, RA_WLOCKED);
+ VM_OBJECT_ASSERT_WLOCKED(m->object);
KASSERT((m->oflags & VPO_BUSY) == 0,
("pmap_clear_modify: page %p is busy", m));
Modified: user/attilio/vmobj-rwlock/sys/ia64/ia64/pmap.c
==============================================================================
--- user/attilio/vmobj-rwlock/sys/ia64/ia64/pmap.c Thu Feb 21 21:48:38 2013 (r247136)
+++ user/attilio/vmobj-rwlock/sys/ia64/ia64/pmap.c Thu Feb 21 21:54:53 2013 (r247137)
@@ -1802,7 +1802,7 @@ pmap_enter_object(pmap_t pmap, vm_offset
vm_page_t m;
vm_pindex_t diff, psize;
- VM_OBJECT_LOCK_ASSERT(m_start->object, RA_WLOCKED);
+ VM_OBJECT_ASSERT_WLOCKED(m_start->object);
psize = atop(end - start);
m = m_start;
rw_wlock(&pvh_global_lock);
@@ -1893,7 +1893,7 @@ pmap_object_init_pt(pmap_t pmap, vm_offs
vm_size_t size)
{
- VM_OBJECT_LOCK_ASSERT(object, RA_WLOCKED);
+ VM_OBJECT_ASSERT_WLOCKED(object);
KASSERT(object->type == OBJT_DEVICE || object->type == OBJT_SG,
("pmap_object_init_pt: non-device object"));
}
@@ -2211,7 +2211,7 @@ pmap_is_modified(vm_page_t m)
* concurrently set while the object is locked. Thus, if PGA_WRITEABLE
* is clear, no PTEs can be dirty.
*/
- VM_OBJECT_LOCK_ASSERT(m->object, RA_WLOCKED);
+ VM_OBJECT_ASSERT_WLOCKED(m->object);
if ((m->oflags & VPO_BUSY) == 0 &&
(m->aflags & PGA_WRITEABLE) == 0)
return (rv);
@@ -2295,7 +2295,7 @@ pmap_clear_modify(vm_page_t m)
KASSERT((m->oflags & VPO_UNMANAGED) == 0,
("pmap_clear_modify: page %p is not managed", m));
- VM_OBJECT_LOCK_ASSERT(m->object, RA_WLOCKED);
+ VM_OBJECT_ASSERT_WLOCKED(m->object);
KASSERT((m->oflags & VPO_BUSY) == 0,
("pmap_clear_modify: page %p is busy", m));
@@ -2373,7 +2373,7 @@ pmap_remove_write(vm_page_t m)
* another thread while the object is locked. Thus, if PGA_WRITEABLE
* is clear, no page table entries need updating.
*/
- VM_OBJECT_LOCK_ASSERT(m->object, RA_WLOCKED);
+ VM_OBJECT_ASSERT_WLOCKED(m->object);
if ((m->oflags & VPO_BUSY) == 0 &&
(m->aflags & PGA_WRITEABLE) == 0)
return;
Modified: user/attilio/vmobj-rwlock/sys/kern/vfs_bio.c
==============================================================================
--- user/attilio/vmobj-rwlock/sys/kern/vfs_bio.c Thu Feb 21 21:48:38 2013 (r247136)
+++ user/attilio/vmobj-rwlock/sys/kern/vfs_bio.c Thu Feb 21 21:54:53 2013 (r247137)
@@ -459,7 +459,7 @@ vfs_buf_test_cache(struct buf *bp,
vm_page_t m)
{
- VM_OBJECT_LOCK_ASSERT(m->object, RA_WLOCKED);
+ VM_OBJECT_ASSERT_WLOCKED(m->object);
if (bp->b_flags & B_CACHE) {
int base = (foff + off) & PAGE_MASK;
if (vm_page_is_valid(m, base, size) == 0)
@@ -2534,7 +2534,7 @@ vfs_setdirty_locked_object(struct buf *b
int i;
object = bp->b_bufobj->bo_object;
- VM_OBJECT_LOCK_ASSERT(object, RA_WLOCKED);
+ VM_OBJECT_ASSERT_WLOCKED(object);
/*
* We qualify the scan for modified pages on whether the
@@ -3567,7 +3567,7 @@ vfs_drain_busy_pages(struct buf *bp)
vm_page_t m;
int i, last_busied;
- VM_OBJECT_LOCK_ASSERT(bp->b_bufobj->bo_object, RA_WLOCKED);
+ VM_OBJECT_ASSERT_WLOCKED(bp->b_bufobj->bo_object);
last_busied = 0;
for (i = 0; i < bp->b_npages; i++) {
m = bp->b_pages[i];
@@ -3720,7 +3720,7 @@ vfs_bio_clrbuf(struct buf *bp)
if (bp->b_pages[0] == bogus_page)
goto unlock;
mask = (1 << (bp->b_bufsize / DEV_BSIZE)) - 1;
- VM_OBJECT_LOCK_ASSERT(bp->b_pages[0]->object, RA_WLOCKED);
+ VM_OBJECT_ASSERT_WLOCKED(bp->b_pages[0]->object);
if ((bp->b_pages[0]->valid & mask) == mask)
goto unlock;
if ((bp->b_pages[0]->valid & mask) == 0) {
@@ -3739,7 +3739,7 @@ vfs_bio_clrbuf(struct buf *bp)
continue;
j = ((vm_offset_t)sa & PAGE_MASK) / DEV_BSIZE;
mask = ((1 << ((ea - sa) / DEV_BSIZE)) - 1) << j;
- VM_OBJECT_LOCK_ASSERT(bp->b_pages[i]->object, RA_WLOCKED);
+ VM_OBJECT_ASSERT_WLOCKED(bp->b_pages[i]->object);
if ((bp->b_pages[i]->valid & mask) == mask)
continue;
if ((bp->b_pages[i]->valid & mask) == 0)
Modified: user/attilio/vmobj-rwlock/sys/kern/vfs_cluster.c
==============================================================================
--- user/attilio/vmobj-rwlock/sys/kern/vfs_cluster.c Thu Feb 21 21:48:38 2013 (r247136)
+++ user/attilio/vmobj-rwlock/sys/kern/vfs_cluster.c Thu Feb 21 21:54:53 2013 (r247137)
@@ -413,8 +413,7 @@ cluster_rbuild(vp, filesize, lbn, blkno,
tinc = tsize;
if (toff + tinc > PAGE_SIZE)
tinc = PAGE_SIZE - toff;
- VM_OBJECT_LOCK_ASSERT(tbp->b_pages[j]->object,
- RA_WLOCKED);
+ VM_OBJECT_ASSERT_WLOCKED(tbp->b_pages[j]->object);
if ((tbp->b_pages[j]->valid &
vm_page_bits(toff, tinc)) != 0)
break;
@@ -490,7 +489,7 @@ cluster_rbuild(vp, filesize, lbn, blkno,
*/
VM_OBJECT_WLOCK(bp->b_bufobj->bo_object);
for (j = 0; j < bp->b_npages; j++) {
- VM_OBJECT_LOCK_ASSERT(bp->b_pages[j]->object, RA_WLOCKED);
+ VM_OBJECT_ASSERT_WLOCKED(bp->b_pages[j]->object);
if (bp->b_pages[j]->valid == VM_PAGE_BITS_ALL)
bp->b_pages[j] = bogus_page;
}
Modified: user/attilio/vmobj-rwlock/sys/mips/mips/pmap.c
==============================================================================
--- user/attilio/vmobj-rwlock/sys/mips/mips/pmap.c Thu Feb 21 21:48:38 2013 (r247136)
+++ user/attilio/vmobj-rwlock/sys/mips/mips/pmap.c Thu Feb 21 21:54:53 2013 (r247137)
@@ -2399,7 +2399,7 @@ pmap_enter_object(pmap_t pmap, vm_offset
vm_page_t m, mpte;
vm_pindex_t diff, psize;
- VM_OBJECT_LOCK_ASSERT(m_start->object, RA_WLOCKED);
+ VM_OBJECT_ASSERT_WLOCKED(m_start->object);
psize = atop(end - start);
mpte = NULL;
m = m_start;
@@ -2423,7 +2423,7 @@ void
pmap_object_init_pt(pmap_t pmap, vm_offset_t addr,
vm_object_t object, vm_pindex_t pindex, vm_size_t size)
{
- VM_OBJECT_LOCK_ASSERT(object, RA_WLOCKED);
+ VM_OBJECT_ASSERT_WLOCKED(object);
KASSERT(object->type == OBJT_DEVICE || object->type == OBJT_SG,
("pmap_object_init_pt: non-device object"));
}
@@ -2768,7 +2768,7 @@ pmap_remove_write(vm_page_t m)
* another thread while the object is locked. Thus, if PGA_WRITEABLE
* is clear, no page table entries need updating.
*/
- VM_OBJECT_LOCK_ASSERT(m->object, RA_WLOCKED);
+ VM_OBJECT_ASSERT_WLOCKED(m->object);
if ((m->oflags & VPO_BUSY) == 0 &&
(m->aflags & PGA_WRITEABLE) == 0)
return;
@@ -2834,7 +2834,7 @@ pmap_is_modified(vm_page_t m)
* concurrently set while the object is locked. Thus, if PGA_WRITEABLE
* is clear, no PTEs can have PTE_D set.
*/
- VM_OBJECT_LOCK_ASSERT(m->object, RA_WLOCKED);
+ VM_OBJECT_ASSERT_WLOCKED(m->object);
if ((m->oflags & VPO_BUSY) == 0 &&
(m->aflags & PGA_WRITEABLE) == 0)
return (FALSE);
@@ -2882,7 +2882,7 @@ pmap_clear_modify(vm_page_t m)
KASSERT((m->oflags & VPO_UNMANAGED) == 0,
("pmap_clear_modify: page %p is not managed", m));
- VM_OBJECT_LOCK_ASSERT(m->object, RA_WLOCKED);
+ VM_OBJECT_ASSERT_WLOCKED(m->object);
KASSERT((m->oflags & VPO_BUSY) == 0,
("pmap_clear_modify: page %p is busy", m));
Modified: user/attilio/vmobj-rwlock/sys/powerpc/aim/mmu_oea.c
==============================================================================
--- user/attilio/vmobj-rwlock/sys/powerpc/aim/mmu_oea.c Thu Feb 21 21:48:38 2013 (r247136)
+++ user/attilio/vmobj-rwlock/sys/powerpc/aim/mmu_oea.c Thu Feb 21 21:54:53 2013 (r247137)
@@ -1122,7 +1122,7 @@ moea_enter_locked(pmap_t pmap, vm_offset
rw_assert(&pvh_global_lock, RA_WLOCKED);
PMAP_LOCK_ASSERT(pmap, MA_OWNED);
if ((m->oflags & (VPO_UNMANAGED | VPO_BUSY)) == 0)
- VM_OBJECT_LOCK_ASSERT(m->object, RA_WLOCKED);
+ VM_OBJECT_ASSERT_WLOCKED(m->object);
/* XXX change the pvo head for fake pages */
if ((m->oflags & VPO_UNMANAGED) != 0) {
@@ -1291,7 +1291,7 @@ moea_is_modified(mmu_t mmu, vm_page_t m)
* concurrently set while the object is locked. Thus, if PGA_WRITEABLE
* is clear, no PTEs can have PTE_CHG set.
*/
- VM_OBJECT_LOCK_ASSERT(m->object, RA_WLOCKED);
+ VM_OBJECT_ASSERT_WLOCKED(m->object);
if ((m->oflags & VPO_BUSY) == 0 &&
(m->aflags & PGA_WRITEABLE) == 0)
return (FALSE);
@@ -1331,7 +1331,7 @@ moea_clear_modify(mmu_t mmu, vm_page_t m
KASSERT((m->oflags & VPO_UNMANAGED) == 0,
("moea_clear_modify: page %p is not managed", m));
- VM_OBJECT_LOCK_ASSERT(m->object, RA_WLOCKED);
+ VM_OBJECT_ASSERT_WLOCKED(m->object);
KASSERT((m->oflags & VPO_BUSY) == 0,
("moea_clear_modify: page %p is busy", m));
@@ -1366,7 +1366,7 @@ moea_remove_write(mmu_t mmu, vm_page_t m
* another thread while the object is locked. Thus, if PGA_WRITEABLE
* is clear, no page table entries need updating.
*/
- VM_OBJECT_LOCK_ASSERT(m->object, RA_WLOCKED);
+ VM_OBJECT_ASSERT_WLOCKED(m->object);
if ((m->oflags & VPO_BUSY) == 0 &&
(m->aflags & PGA_WRITEABLE) == 0)
return;
Modified: user/attilio/vmobj-rwlock/sys/powerpc/aim/mmu_oea64.c
==============================================================================
--- user/attilio/vmobj-rwlock/sys/powerpc/aim/mmu_oea64.c Thu Feb 21 21:48:38 2013 (r247136)
+++ user/attilio/vmobj-rwlock/sys/powerpc/aim/mmu_oea64.c Thu Feb 21 21:54:53 2013 (r247137)
@@ -1184,7 +1184,7 @@ moea64_enter(mmu_t mmu, pmap_t pmap, vm_
}
if ((m->oflags & (VPO_UNMANAGED | VPO_BUSY)) == 0)
- VM_OBJECT_LOCK_ASSERT(m->object, RA_WLOCKED);
+ VM_OBJECT_ASSERT_WLOCKED(m->object);
/* XXX change the pvo head for fake pages */
if ((m->oflags & VPO_UNMANAGED) != 0) {
@@ -1447,7 +1447,7 @@ moea64_is_modified(mmu_t mmu, vm_page_t
* concurrently set while the object is locked. Thus, if PGA_WRITEABLE
* is clear, no PTEs can have LPTE_CHG set.
*/
- VM_OBJECT_LOCK_ASSERT(m->object, RA_WLOCKED);
+ VM_OBJECT_ASSERT_WLOCKED(m->object);
if ((m->oflags & VPO_BUSY) == 0 &&
(m->aflags & PGA_WRITEABLE) == 0)
return (FALSE);
@@ -1482,7 +1482,7 @@ moea64_clear_modify(mmu_t mmu, vm_page_t
KASSERT((m->oflags & VPO_UNMANAGED) == 0,
("moea64_clear_modify: page %p is not managed", m));
- VM_OBJECT_LOCK_ASSERT(m->object, RA_WLOCKED);
+ VM_OBJECT_ASSERT_WLOCKED(m->object);
KASSERT((m->oflags & VPO_BUSY) == 0,
("moea64_clear_modify: page %p is busy", m));
@@ -1515,7 +1515,7 @@ moea64_remove_write(mmu_t mmu, vm_page_t
* another thread while the object is locked. Thus, if PGA_WRITEABLE
* is clear, no page table entries need updating.
*/
- VM_OBJECT_LOCK_ASSERT(m->object, RA_WLOCKED);
+ VM_OBJECT_ASSERT_WLOCKED(m->object);
if ((m->oflags & VPO_BUSY) == 0 &&
(m->aflags & PGA_WRITEABLE) == 0)
return;
Modified: user/attilio/vmobj-rwlock/sys/powerpc/booke/pmap.c
==============================================================================
--- user/attilio/vmobj-rwlock/sys/powerpc/booke/pmap.c Thu Feb 21 21:48:38 2013 (r247136)
+++ user/attilio/vmobj-rwlock/sys/powerpc/booke/pmap.c Thu Feb 21 21:54:53 2013 (r247137)
@@ -1562,7 +1562,7 @@ mmu_booke_enter_locked(mmu_t mmu, pmap_t
("mmu_booke_enter_locked: user pmap, non user va"));
}
if ((m->oflags & (VPO_UNMANAGED | VPO_BUSY)) == 0)
- VM_OBJECT_LOCK_ASSERT(m->object, RA_WLOCKED);
+ VM_OBJECT_ASSERT_WLOCKED(m->object);
PMAP_LOCK_ASSERT(pmap, MA_OWNED);
@@ -1959,7 +1959,7 @@ mmu_booke_remove_write(mmu_t mmu, vm_pag
* another thread while the object is locked. Thus, if PGA_WRITEABLE
* is clear, no page table entries need updating.
*/
- VM_OBJECT_LOCK_ASSERT(m->object, RA_WLOCKED);
+ VM_OBJECT_ASSERT_WLOCKED(m->object);
if ((m->oflags & VPO_BUSY) == 0 &&
(m->aflags & PGA_WRITEABLE) == 0)
return;
@@ -2174,7 +2174,7 @@ mmu_booke_is_modified(mmu_t mmu, vm_page
* concurrently set while the object is locked. Thus, if PGA_WRITEABLE
* is clear, no PTEs can be modified.
*/
- VM_OBJECT_LOCK_ASSERT(m->object, RA_WLOCKED);
+ VM_OBJECT_ASSERT_WLOCKED(m->object);
if ((m->oflags & VPO_BUSY) == 0 &&
(m->aflags & PGA_WRITEABLE) == 0)
return (rv);
@@ -2246,7 +2246,7 @@ mmu_booke_clear_modify(mmu_t mmu, vm_pag
KASSERT((m->oflags & VPO_UNMANAGED) == 0,
("mmu_booke_clear_modify: page %p is not managed", m));
- VM_OBJECT_LOCK_ASSERT(m->object, RA_WLOCKED);
+ VM_OBJECT_ASSERT_WLOCKED(m->object);
KASSERT((m->oflags & VPO_BUSY) == 0,
("mmu_booke_clear_modify: page %p is busy", m));
@@ -2661,7 +2661,7 @@ mmu_booke_object_init_pt(mmu_t mmu, pmap
vm_object_t object, vm_pindex_t pindex, vm_size_t size)
{
- VM_OBJECT_LOCK_ASSERT(object, RA_WLOCKED);
+ VM_OBJECT_ASSERT_WLOCKED(object);
KASSERT(object->type == OBJT_DEVICE || object->type == OBJT_SG,
("mmu_booke_object_init_pt: non-device object"));
}
Modified: user/attilio/vmobj-rwlock/sys/sparc64/sparc64/pmap.c
==============================================================================
--- user/attilio/vmobj-rwlock/sys/sparc64/sparc64/pmap.c Thu Feb 21 21:48:38 2013 (r247136)
+++ user/attilio/vmobj-rwlock/sys/sparc64/sparc64/pmap.c Thu Feb 21 21:54:53 2013 (r247137)
@@ -1495,7 +1495,7 @@ pmap_enter_locked(pmap_t pm, vm_offset_t
rw_assert(&tte_list_global_lock, RA_WLOCKED);
PMAP_LOCK_ASSERT(pm, MA_OWNED);
if ((m->oflags & (VPO_UNMANAGED | VPO_BUSY)) == 0)
- VM_OBJECT_LOCK_ASSERT(m->object, RA_WLOCKED);
+ VM_OBJECT_ASSERT_WLOCKED(m->object);
PMAP_STATS_INC(pmap_nenter);
pa = VM_PAGE_TO_PHYS(m);
@@ -1662,7 +1662,7 @@ pmap_object_init_pt(pmap_t pm, vm_offset
vm_pindex_t pindex, vm_size_t size)
{
- VM_OBJECT_LOCK_ASSERT(object, RA_WLOCKED);
+ VM_OBJECT_ASSERT_WLOCKED(object);
KASSERT(object->type == OBJT_DEVICE || object->type == OBJT_SG,
("pmap_object_init_pt: non-device object"));
}
@@ -2060,7 +2060,7 @@ pmap_is_modified(vm_page_t m)
* concurrently set while the object is locked. Thus, if PGA_WRITEABLE
* is clear, no TTEs can have TD_W set.
*/
- VM_OBJECT_LOCK_ASSERT(m->object, RA_WLOCKED);
+ VM_OBJECT_ASSERT_WLOCKED(m->object);
if ((m->oflags & VPO_BUSY) == 0 &&
(m->aflags & PGA_WRITEABLE) == 0)
return (rv);
@@ -2128,7 +2128,7 @@ pmap_clear_modify(vm_page_t m)
KASSERT((m->oflags & VPO_UNMANAGED) == 0,
("pmap_clear_modify: page %p is not managed", m));
- VM_OBJECT_LOCK_ASSERT(m->object, RA_WLOCKED);
+ VM_OBJECT_ASSERT_WLOCKED(m->object);
KASSERT((m->oflags & VPO_BUSY) == 0,
("pmap_clear_modify: page %p is busy", m));
@@ -2183,7 +2183,7 @@ pmap_remove_write(vm_page_t m)
* another thread while the object is locked. Thus, if PGA_WRITEABLE
* is clear, no page table entries need updating.
*/
- VM_OBJECT_LOCK_ASSERT(m->object, RA_WLOCKED);
+ VM_OBJECT_ASSERT_WLOCKED(m->object);
if ((m->oflags & VPO_BUSY) == 0 &&
(m->aflags & PGA_WRITEABLE) == 0)
return;
Modified: user/attilio/vmobj-rwlock/sys/vm/device_pager.c
==============================================================================
--- user/attilio/vmobj-rwlock/sys/vm/device_pager.c Thu Feb 21 21:48:38 2013 (r247136)
+++ user/attilio/vmobj-rwlock/sys/vm/device_pager.c Thu Feb 21 21:54:53 2013 (r247137)
@@ -207,7 +207,7 @@ void
cdev_pager_free_page(vm_object_t object, vm_page_t m)
{
- VM_OBJECT_LOCK_ASSERT(object, RA_WLOCKED);
+ VM_OBJECT_ASSERT_WLOCKED(object);
if (object->type == OBJT_MGTDEVICE) {
KASSERT((m->oflags & VPO_UNMANAGED) == 0, ("unmanaged %p", m));
pmap_remove_all(m);
@@ -222,7 +222,7 @@ static void
dev_pager_free_page(vm_object_t object, vm_page_t m)
{
- VM_OBJECT_LOCK_ASSERT(object, RA_WLOCKED);
+ VM_OBJECT_ASSERT_WLOCKED(object);
KASSERT((object->type == OBJT_DEVICE &&
(m->oflags & VPO_UNMANAGED) != 0),
("Managed device or page obj %p m %p", object, m));
@@ -259,11 +259,11 @@ dev_pager_getpages(vm_object_t object, v
{
int error, i;
- VM_OBJECT_LOCK_ASSERT(object, RA_WLOCKED);
+ VM_OBJECT_ASSERT_WLOCKED(object);
error = object->un_pager.devp.ops->cdev_pg_fault(object,
IDX_TO_OFF(ma[reqpage]->pindex), PROT_READ, &ma[reqpage]);
- VM_OBJECT_LOCK_ASSERT(object, RA_WLOCKED);
+ VM_OBJECT_ASSERT_WLOCKED(object);
for (i = 0; i < count; i++) {
if (i != reqpage) {
Modified: user/attilio/vmobj-rwlock/sys/vm/phys_pager.c
==============================================================================
--- user/attilio/vmobj-rwlock/sys/vm/phys_pager.c Thu Feb 21 21:48:38 2013 (r247136)
+++ user/attilio/vmobj-rwlock/sys/vm/phys_pager.c Thu Feb 21 21:54:53 2013 (r247137)
@@ -140,7 +140,7 @@ phys_pager_getpages(vm_object_t object,
{
int i;
- VM_OBJECT_LOCK_ASSERT(object, RA_WLOCKED);
+ VM_OBJECT_ASSERT_WLOCKED(object);
for (i = 0; i < count; i++) {
if (m[i]->valid == 0) {
if ((m[i]->flags & PG_ZERO) == 0)
Modified: user/attilio/vmobj-rwlock/sys/vm/sg_pager.c
==============================================================================
--- user/attilio/vmobj-rwlock/sys/vm/sg_pager.c Thu Feb 21 21:48:38 2013 (r247136)
+++ user/attilio/vmobj-rwlock/sys/vm/sg_pager.c Thu Feb 21 21:54:53 2013 (r247137)
@@ -143,7 +143,7 @@ sg_pager_getpages(vm_object_t object, vm
size_t space;
int i;
- VM_OBJECT_LOCK_ASSERT(object, RA_WLOCKED);
+ VM_OBJECT_ASSERT_WLOCKED(object);
sg = object->handle;
memattr = object->memattr;
VM_OBJECT_WUNLOCK(object);
Modified: user/attilio/vmobj-rwlock/sys/vm/swap_pager.c
==============================================================================
--- user/attilio/vmobj-rwlock/sys/vm/swap_pager.c Thu Feb 21 21:48:38 2013 (r247136)
+++ user/attilio/vmobj-rwlock/sys/vm/swap_pager.c Thu Feb 21 21:54:53 2013 (r247137)
@@ -676,7 +676,7 @@ swap_pager_dealloc(vm_object_t object)
mtx_unlock(&sw_alloc_mtx);
}
- VM_OBJECT_LOCK_ASSERT(object, RA_WLOCKED);
+ VM_OBJECT_ASSERT_WLOCKED(object);
vm_object_pip_wait(object, "swpdea");
/*
@@ -817,7 +817,7 @@ void
swap_pager_freespace(vm_object_t object, vm_pindex_t start, vm_size_t size)
{
- VM_OBJECT_LOCK_ASSERT(object, RA_WLOCKED);
+ VM_OBJECT_ASSERT_WLOCKED(object);
swp_pager_meta_free(object, start, size);
}
@@ -885,8 +885,8 @@ swap_pager_copy(vm_object_t srcobject, v
{
vm_pindex_t i;
- VM_OBJECT_LOCK_ASSERT(srcobject, RA_WLOCKED);
- VM_OBJECT_LOCK_ASSERT(dstobject, RA_WLOCKED);
+ VM_OBJECT_ASSERT_WLOCKED(srcobject);
+ VM_OBJECT_ASSERT_WLOCKED(dstobject);
/*
* If destroysource is set, we remove the source object from the
@@ -989,7 +989,7 @@ swap_pager_haspage(vm_object_t object, v
{
daddr_t blk0;
- VM_OBJECT_LOCK_ASSERT(object, RA_WLOCKED);
+ VM_OBJECT_ASSERT_WLOCKED(object);
/*
* do we have good backing store at the requested index ?
*/
@@ -1060,7 +1060,7 @@ static void
swap_pager_unswapped(vm_page_t m)
{
- VM_OBJECT_LOCK_ASSERT(m->object, RA_WLOCKED);
+ VM_OBJECT_ASSERT_WLOCKED(m->object);
swp_pager_meta_ctl(m->object, m->pindex, SWM_FREE);
}
@@ -1654,7 +1654,7 @@ swap_pager_isswapped(vm_object_t object,
int bcount;
int i;
- VM_OBJECT_LOCK_ASSERT(object, RA_WLOCKED);
+ VM_OBJECT_ASSERT_WLOCKED(object);
if (object->type != OBJT_SWAP)
return (0);
@@ -1810,7 +1810,7 @@ swp_pager_meta_build(vm_object_t object,
struct swblock **pswap;
int idx;
- VM_OBJECT_LOCK_ASSERT(object, RA_WLOCKED);
+ VM_OBJECT_ASSERT_WLOCKED(object);
/*
* Convert default object to swap object if necessary
*/
@@ -1908,7 +1908,7 @@ static void
swp_pager_meta_free(vm_object_t object, vm_pindex_t index, daddr_t count)
{
- VM_OBJECT_LOCK_ASSERT(object, RA_WLOCKED);
+ VM_OBJECT_ASSERT_WLOCKED(object);
if (object->type != OBJT_SWAP)
return;
@@ -1954,7 +1954,7 @@ swp_pager_meta_free_all(vm_object_t obje
{
daddr_t index = 0;
- VM_OBJECT_LOCK_ASSERT(object, RA_WLOCKED);
+ VM_OBJECT_ASSERT_WLOCKED(object);
if (object->type != OBJT_SWAP)
return;
@@ -2013,7 +2013,7 @@ swp_pager_meta_ctl(vm_object_t object, v
daddr_t r1;
int idx;
- VM_OBJECT_LOCK_ASSERT(object, RA_WLOCKED);
+ VM_OBJECT_ASSERT_WLOCKED(object);
/*
* The meta data only exists of the object is OBJT_SWAP
* and even then might not be allocated yet.
Modified: user/attilio/vmobj-rwlock/sys/vm/vm_fault.c
==============================================================================
--- user/attilio/vmobj-rwlock/sys/vm/vm_fault.c Thu Feb 21 21:48:38 2013 (r247136)
+++ user/attilio/vmobj-rwlock/sys/vm/vm_fault.c Thu Feb 21 21:54:53 2013 (r247137)
@@ -960,7 +960,7 @@ vm_fault_cache_behind(const struct fault
vm_pindex_t pindex;
object = fs->object;
- VM_OBJECT_LOCK_ASSERT(object, RA_WLOCKED);
+ VM_OBJECT_ASSERT_WLOCKED(object);
first_object = fs->first_object;
if (first_object != object) {
if (!VM_OBJECT_TRYWLOCK(first_object)) {
@@ -1403,7 +1403,7 @@ vm_fault_additional_pages(m, rbehind, ra
vm_page_t rtm;
int cbehind, cahead;
- VM_OBJECT_LOCK_ASSERT(m->object, RA_WLOCKED);
+ VM_OBJECT_ASSERT_WLOCKED(m->object);
object = m->object;
pindex = m->pindex;
Modified: user/attilio/vmobj-rwlock/sys/vm/vm_object.c
==============================================================================
--- user/attilio/vmobj-rwlock/sys/vm/vm_object.c Thu Feb 21 21:48:38 2013 (r247136)
+++ user/attilio/vmobj-rwlock/sys/vm/vm_object.c Thu Feb 21 21:54:53 2013 (r247137)
@@ -301,7 +301,7 @@ void
vm_object_clear_flag(vm_object_t object, u_short bits)
{
- VM_OBJECT_LOCK_ASSERT(object, RA_WLOCKED);
+ VM_OBJECT_ASSERT_WLOCKED(object);
object->flags &= ~bits;
}
@@ -318,7 +318,7 @@ int
vm_object_set_memattr(vm_object_t object, vm_memattr_t memattr)
{
- VM_OBJECT_LOCK_ASSERT(object, RA_WLOCKED);
+ VM_OBJECT_ASSERT_WLOCKED(object);
switch (object->type) {
case OBJT_DEFAULT:
case OBJT_DEVICE:
@@ -344,7 +344,7 @@ void
vm_object_pip_add(vm_object_t object, short i)
{
- VM_OBJECT_LOCK_ASSERT(object, RA_WLOCKED);
+ VM_OBJECT_ASSERT_WLOCKED(object);
object->paging_in_progress += i;
}
@@ -352,7 +352,7 @@ void
vm_object_pip_subtract(vm_object_t object, short i)
{
- VM_OBJECT_LOCK_ASSERT(object, RA_WLOCKED);
+ VM_OBJECT_ASSERT_WLOCKED(object);
object->paging_in_progress -= i;
}
@@ -360,7 +360,7 @@ void
vm_object_pip_wakeup(vm_object_t object)
{
- VM_OBJECT_LOCK_ASSERT(object, RA_WLOCKED);
+ VM_OBJECT_ASSERT_WLOCKED(object);
object->paging_in_progress--;
if ((object->flags & OBJ_PIPWNT) && object->paging_in_progress == 0) {
vm_object_clear_flag(object, OBJ_PIPWNT);
@@ -372,7 +372,7 @@ void
vm_object_pip_wakeupn(vm_object_t object, short i)
{
- VM_OBJECT_LOCK_ASSERT(object, RA_WLOCKED);
+ VM_OBJECT_ASSERT_WLOCKED(object);
if (i)
object->paging_in_progress -= i;
if ((object->flags & OBJ_PIPWNT) && object->paging_in_progress == 0) {
@@ -385,7 +385,7 @@ void
vm_object_pip_wait(vm_object_t object, char *waitid)
{
- VM_OBJECT_LOCK_ASSERT(object, RA_WLOCKED);
+ VM_OBJECT_ASSERT_WLOCKED(object);
while (object->paging_in_progress) {
object->flags |= OBJ_PIPWNT;
VM_OBJECT_SLEEP(object, object, PVM, waitid, 0);
@@ -436,7 +436,7 @@ vm_object_reference_locked(vm_object_t o
{
struct vnode *vp;
- VM_OBJECT_LOCK_ASSERT(object, RA_WLOCKED);
+ VM_OBJECT_ASSERT_WLOCKED(object);
object->ref_count++;
if (object->type == OBJT_VNODE) {
vp = object->handle;
@@ -452,7 +452,7 @@ vm_object_vndeallocate(vm_object_t objec
{
struct vnode *vp = (struct vnode *) object->handle;
- VM_OBJECT_LOCK_ASSERT(object, RA_WLOCKED);
+ VM_OBJECT_ASSERT_WLOCKED(object);
KASSERT(object->type == OBJT_VNODE,
("vm_object_vndeallocate: not a vnode object"));
KASSERT(vp != NULL, ("vm_object_vndeallocate: missing vp"));
@@ -675,7 +675,7 @@ vm_object_terminate(vm_object_t object)
{
vm_page_t p, p_next;
- VM_OBJECT_LOCK_ASSERT(object, RA_WLOCKED);
+ VM_OBJECT_ASSERT_WLOCKED(object);
/*
* Make sure no one uses us.
@@ -816,7 +816,7 @@ vm_object_page_clean(vm_object_t object,
int curgeneration, n, pagerflags;
boolean_t clearobjflags, eio, res;
- VM_OBJECT_LOCK_ASSERT(object, RA_WLOCKED);
+ VM_OBJECT_ASSERT_WLOCKED(object);
KASSERT(object->type == OBJT_VNODE, ("Not a vnode object"));
if ((object->flags & OBJ_MIGHTBEDIRTY) == 0 ||
object->resident_page_count == 0)
@@ -902,7 +902,7 @@ vm_object_page_collect_flush(vm_object_t
int count, i, mreq, runlen;
vm_page_lock_assert(p, MA_NOTOWNED);
- VM_OBJECT_LOCK_ASSERT(object, RA_WLOCKED);
+ VM_OBJECT_ASSERT_WLOCKED(object);
count = 1;
mreq = 0;
@@ -1404,8 +1404,8 @@ vm_object_backing_scan(vm_object_t objec
vm_object_t backing_object;
vm_pindex_t backing_offset_index;
- VM_OBJECT_LOCK_ASSERT(object, RA_WLOCKED);
- VM_OBJECT_LOCK_ASSERT(object->backing_object, RA_WLOCKED);
+ VM_OBJECT_ASSERT_WLOCKED(object);
+ VM_OBJECT_ASSERT_WLOCKED(object->backing_object);
backing_object = object->backing_object;
backing_offset_index = OFF_TO_IDX(object->backing_object_offset);
@@ -1625,8 +1625,8 @@ vm_object_qcollapse(vm_object_t object)
{
vm_object_t backing_object = object->backing_object;
- VM_OBJECT_LOCK_ASSERT(object, RA_WLOCKED);
- VM_OBJECT_LOCK_ASSERT(backing_object, RA_WLOCKED);
+ VM_OBJECT_ASSERT_WLOCKED(object);
+ VM_OBJECT_ASSERT_WLOCKED(backing_object);
if (backing_object->ref_count != 1)
return;
@@ -1644,7 +1644,7 @@ vm_object_qcollapse(vm_object_t object)
void
vm_object_collapse(vm_object_t object)
{
- VM_OBJECT_LOCK_ASSERT(object, RA_WLOCKED);
+ VM_OBJECT_ASSERT_WLOCKED(object);
while (TRUE) {
vm_object_t backing_object;
@@ -1852,7 +1852,7 @@ vm_object_page_remove(vm_object_t object
vm_page_t p, next;
int wirings;
- VM_OBJECT_LOCK_ASSERT(object, RA_WLOCKED);
+ VM_OBJECT_ASSERT_WLOCKED(object);
KASSERT((object->flags & OBJ_UNMANAGED) == 0 ||
(options & (OBJPR_CLEANONLY | OBJPR_NOTMAPPED)) == OBJPR_NOTMAPPED,
("vm_object_page_remove: illegal options for object %p", object));
@@ -1947,7 +1947,7 @@ vm_object_page_cache(vm_object_t object,
struct mtx *mtx, *new_mtx;
vm_page_t p, next;
- VM_OBJECT_LOCK_ASSERT(object, RA_WLOCKED);
+ VM_OBJECT_ASSERT_WLOCKED(object);
KASSERT((object->flags & (OBJ_FICTITIOUS | OBJ_UNMANAGED)) == 0,
("vm_object_page_cache: illegal object %p", object));
if (object->resident_page_count == 0)
@@ -1995,7 +1995,7 @@ vm_object_populate(vm_object_t object, v
vm_pindex_t pindex;
int rv;
- VM_OBJECT_LOCK_ASSERT(object, RA_WLOCKED);
+ VM_OBJECT_ASSERT_WLOCKED(object);
for (pindex = start; pindex < end; pindex++) {
m = vm_page_grab(object, pindex, VM_ALLOC_NORMAL |
VM_ALLOC_RETRY);
@@ -2146,7 +2146,7 @@ void
vm_object_set_writeable_dirty(vm_object_t object)
{
- VM_OBJECT_LOCK_ASSERT(object, RA_WLOCKED);
+ VM_OBJECT_ASSERT_WLOCKED(object);
if (object->type != OBJT_VNODE)
return;
object->generation++;
Modified: user/attilio/vmobj-rwlock/sys/vm/vm_object.h
==============================================================================
--- user/attilio/vmobj-rwlock/sys/vm/vm_object.h Thu Feb 21 21:48:38 2013 (r247136)
+++ user/attilio/vmobj-rwlock/sys/vm/vm_object.h Thu Feb 21 21:54:53 2013 (r247137)
@@ -204,8 +204,8 @@ extern struct vm_object kmem_object_stor
#define kernel_object (&kernel_object_store)
#define kmem_object (&kmem_object_store)
-#define VM_OBJECT_LOCK_ASSERT(object, type) \
- rw_assert(&(object)->lock, (type))
+#define VM_OBJECT_ASSERT_WLOCKED(object) \
+ rw_assert(&(object)->lock, RA_WLOCKED)
#define VM_OBJECT_LOCK_INIT(object, name) \
rw_init_flags(&(object)->lock, (name), RW_DUPOK)
#define VM_OBJECT_RLOCK(object) \
Modified: user/attilio/vmobj-rwlock/sys/vm/vm_page.c
==============================================================================
--- user/attilio/vmobj-rwlock/sys/vm/vm_page.c Thu Feb 21 21:48:38 2013 (r247136)
+++ user/attilio/vmobj-rwlock/sys/vm/vm_page.c Thu Feb 21 21:54:53 2013 (r247137)
@@ -469,7 +469,7 @@ void
vm_page_busy(vm_page_t m)
{
- VM_OBJECT_LOCK_ASSERT(m->object, RA_WLOCKED);
+ VM_OBJECT_ASSERT_WLOCKED(m->object);
KASSERT((m->oflags & VPO_BUSY) == 0,
("vm_page_busy: page already busy!!!"));
m->oflags |= VPO_BUSY;
@@ -484,7 +484,7 @@ void
vm_page_flash(vm_page_t m)
{
- VM_OBJECT_LOCK_ASSERT(m->object, RA_WLOCKED);
+ VM_OBJECT_ASSERT_WLOCKED(m->object);
if (m->oflags & VPO_WANTED) {
m->oflags &= ~VPO_WANTED;
wakeup(m);
@@ -502,7 +502,7 @@ void
vm_page_wakeup(vm_page_t m)
{
- VM_OBJECT_LOCK_ASSERT(m->object, RA_WLOCKED);
+ VM_OBJECT_ASSERT_WLOCKED(m->object);
KASSERT(m->oflags & VPO_BUSY, ("vm_page_wakeup: page not busy!!!"));
m->oflags &= ~VPO_BUSY;
vm_page_flash(m);
@@ -512,7 +512,7 @@ void
vm_page_io_start(vm_page_t m)
{
- VM_OBJECT_LOCK_ASSERT(m->object, RA_WLOCKED);
+ VM_OBJECT_ASSERT_WLOCKED(m->object);
m->busy++;
}
@@ -520,7 +520,7 @@ void
vm_page_io_finish(vm_page_t m)
{
- VM_OBJECT_LOCK_ASSERT(m->object, RA_WLOCKED);
+ VM_OBJECT_ASSERT_WLOCKED(m->object);
KASSERT(m->busy > 0, ("vm_page_io_finish: page %p is not busy", m));
m->busy--;
if (m->busy == 0)
@@ -752,7 +752,7 @@ void
vm_page_sleep(vm_page_t m, const char *msg)
*** DIFF OUTPUT TRUNCATED AT 1000 LINES ***
More information about the svn-src-user
mailing list