Date: Thu, 21 Feb 2013 21:54:53 +0000 (UTC) From: Attilio Rao <attilio@FreeBSD.org> To: src-committers@freebsd.org, svn-src-user@freebsd.org Subject: 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 ... Message-ID: <201302212154.r1LLss1j087319@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
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 ***
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201302212154.r1LLss1j087319>