Author: attilio
Date: Wed Feb 27 18:12:13 2013
New Revision: 247400
URL: http://svnweb.freebsd.org/changeset/base/247400

Log:
  Merge from vmobj-rwlock:
  VM_OBJECT_LOCKED() macro is only used to implement a custom version
  of lock assertions right now (which likely spread out thanks to
  copy and paste).
  Remove it and implement actual assertions.
  
  Sponsored by: EMC / Isilon storage division
  Reviewed by:  alc
  Tested by:    pho

Modified:
  head/sys/amd64/amd64/pmap.c
  head/sys/i386/i386/pmap.c
  head/sys/i386/xen/pmap.c
  head/sys/powerpc/aim/mmu_oea.c
  head/sys/powerpc/aim/mmu_oea64.c
  head/sys/powerpc/booke/pmap.c
  head/sys/sparc64/sparc64/pmap.c
  head/sys/vm/vm_object.h

Modified: head/sys/amd64/amd64/pmap.c
==============================================================================
--- head/sys/amd64/amd64/pmap.c Wed Feb 27 18:12:04 2013        (r247399)
+++ head/sys/amd64/amd64/pmap.c Wed Feb 27 18:12:13 2013        (r247400)
@@ -3492,9 +3492,8 @@ pmap_enter(pmap_t pmap, vm_offset_t va, 
        KASSERT((m->oflags & VPO_UNMANAGED) != 0 || va < kmi.clean_sva ||
            va >= kmi.clean_eva,
            ("pmap_enter: managed mapping within the clean submap"));
-       KASSERT((m->oflags & (VPO_UNMANAGED | VPO_BUSY)) != 0 ||
-           VM_OBJECT_LOCKED(m->object),
-           ("pmap_enter: page %p is not busy", m));
+       if ((m->oflags & (VPO_UNMANAGED | VPO_BUSY)) == 0)
+               VM_OBJECT_LOCK_ASSERT(m->object, MA_OWNED);
        pa = VM_PAGE_TO_PHYS(m);
        newpte = (pt_entry_t)(pa | PG_A | PG_V);
        if ((access & VM_PROT_WRITE) != 0)

Modified: head/sys/i386/i386/pmap.c
==============================================================================
--- head/sys/i386/i386/pmap.c   Wed Feb 27 18:12:04 2013        (r247399)
+++ head/sys/i386/i386/pmap.c   Wed Feb 27 18:12:13 2013        (r247400)
@@ -3456,9 +3456,8 @@ pmap_enter(pmap_t pmap, vm_offset_t va, 
        KASSERT(va < UPT_MIN_ADDRESS || va >= UPT_MAX_ADDRESS,
            ("pmap_enter: invalid to pmap_enter page table pages (va: 0x%x)",
            va));
-       KASSERT((m->oflags & (VPO_UNMANAGED | VPO_BUSY)) != 0 ||
-           VM_OBJECT_LOCKED(m->object),
-           ("pmap_enter: page %p is not busy", m));
+       if ((m->oflags & (VPO_UNMANAGED | VPO_BUSY)) == 0)
+               VM_OBJECT_LOCK_ASSERT(m->object, MA_OWNED);
 
        mpte = NULL;
 

Modified: head/sys/i386/xen/pmap.c
==============================================================================
--- head/sys/i386/xen/pmap.c    Wed Feb 27 18:12:04 2013        (r247399)
+++ head/sys/i386/xen/pmap.c    Wed Feb 27 18:12:13 2013        (r247400)
@@ -2666,9 +2666,8 @@ pmap_enter(pmap_t pmap, vm_offset_t va, 
        KASSERT(va < UPT_MIN_ADDRESS || va >= UPT_MAX_ADDRESS,
            ("pmap_enter: invalid to pmap_enter page table pages (va: 0x%x)",
            va));
-       KASSERT((m->oflags & (VPO_UNMANAGED | VPO_BUSY)) != 0 ||
-           VM_OBJECT_LOCKED(m->object),
-           ("pmap_enter: page %p is not busy", m));
+       if ((m->oflags & (VPO_UNMANAGED | VPO_BUSY)) == 0)
+               VM_OBJECT_LOCK_ASSERT(m->object, MA_OWNED);
 
        mpte = NULL;
 

Modified: head/sys/powerpc/aim/mmu_oea.c
==============================================================================
--- head/sys/powerpc/aim/mmu_oea.c      Wed Feb 27 18:12:04 2013        
(r247399)
+++ head/sys/powerpc/aim/mmu_oea.c      Wed Feb 27 18:12:13 2013        
(r247400)
@@ -1121,9 +1121,8 @@ moea_enter_locked(pmap_t pmap, vm_offset
        if (pmap_bootstrapped)
                rw_assert(&pvh_global_lock, RA_WLOCKED);
        PMAP_LOCK_ASSERT(pmap, MA_OWNED);
-       KASSERT((m->oflags & (VPO_UNMANAGED | VPO_BUSY)) != 0 ||
-           VM_OBJECT_LOCKED(m->object),
-           ("moea_enter_locked: page %p is not busy", m));
+       if ((m->oflags & (VPO_UNMANAGED | VPO_BUSY)) == 0)
+               VM_OBJECT_LOCK_ASSERT(m->object, MA_OWNED);
 
        /* XXX change the pvo head for fake pages */
        if ((m->oflags & VPO_UNMANAGED) != 0) {

Modified: head/sys/powerpc/aim/mmu_oea64.c
==============================================================================
--- head/sys/powerpc/aim/mmu_oea64.c    Wed Feb 27 18:12:04 2013        
(r247399)
+++ head/sys/powerpc/aim/mmu_oea64.c    Wed Feb 27 18:12:13 2013        
(r247400)
@@ -1183,9 +1183,8 @@ moea64_enter(mmu_t mmu, pmap_t pmap, vm_
                pvo_flags = PVO_MANAGED;
        }
 
-       KASSERT((m->oflags & (VPO_UNMANAGED | VPO_BUSY)) != 0 ||
-           VM_OBJECT_LOCKED(m->object),
-           ("moea64_enter: page %p is not busy", m));
+       if ((m->oflags & (VPO_UNMANAGED | VPO_BUSY)) == 0)
+               VM_OBJECT_LOCK_ASSERT(m->object, MA_OWNED);
 
        /* XXX change the pvo head for fake pages */
        if ((m->oflags & VPO_UNMANAGED) != 0) {

Modified: head/sys/powerpc/booke/pmap.c
==============================================================================
--- head/sys/powerpc/booke/pmap.c       Wed Feb 27 18:12:04 2013        
(r247399)
+++ head/sys/powerpc/booke/pmap.c       Wed Feb 27 18:12:13 2013        
(r247400)
@@ -1560,9 +1560,8 @@ mmu_booke_enter_locked(mmu_t mmu, pmap_t
                KASSERT((va <= VM_MAXUSER_ADDRESS),
                    ("mmu_booke_enter_locked: user pmap, non user va"));
        }
-       KASSERT((m->oflags & (VPO_UNMANAGED | VPO_BUSY)) != 0 ||
-           VM_OBJECT_LOCKED(m->object),
-           ("mmu_booke_enter_locked: page %p is not busy", m));
+       if ((m->oflags & (VPO_UNMANAGED | VPO_BUSY)) == 0)
+               VM_OBJECT_LOCK_ASSERT(m->object, MA_OWNED);
 
        PMAP_LOCK_ASSERT(pmap, MA_OWNED);
 

Modified: head/sys/sparc64/sparc64/pmap.c
==============================================================================
--- head/sys/sparc64/sparc64/pmap.c     Wed Feb 27 18:12:04 2013        
(r247399)
+++ head/sys/sparc64/sparc64/pmap.c     Wed Feb 27 18:12:13 2013        
(r247400)
@@ -1494,9 +1494,8 @@ pmap_enter_locked(pmap_t pm, vm_offset_t
 
        rw_assert(&tte_list_global_lock, RA_WLOCKED);
        PMAP_LOCK_ASSERT(pm, MA_OWNED);
-       KASSERT((m->oflags & (VPO_UNMANAGED | VPO_BUSY)) != 0 ||
-           VM_OBJECT_LOCKED(m->object),
-           ("pmap_enter_locked: page %p is not busy", m));
+       if ((m->oflags & (VPO_UNMANAGED | VPO_BUSY)) == 0)
+               VM_OBJECT_LOCK_ASSERT(m->object, MA_OWNED);
        PMAP_STATS_INC(pmap_nenter);
        pa = VM_PAGE_TO_PHYS(m);
 

Modified: head/sys/vm/vm_object.h
==============================================================================
--- head/sys/vm/vm_object.h     Wed Feb 27 18:12:04 2013        (r247399)
+++ head/sys/vm/vm_object.h     Wed Feb 27 18:12:13 2013        (r247400)
@@ -206,7 +206,6 @@ extern struct vm_object kmem_object_stor
 #define        VM_OBJECT_LOCK(object)          mtx_lock(&(object)->mtx)
 #define        VM_OBJECT_LOCK_ASSERT(object, type) \
                                        mtx_assert(&(object)->mtx, (type))
-#define        VM_OBJECT_LOCKED(object)        mtx_owned(&(object)->mtx)
 #define        VM_OBJECT_SLEEP(object, wchan, pri, wmesg, timo) \
                                        msleep((wchan), &(object)->mtx, (pri), \
                                            (wmesg), (timo))
_______________________________________________
svn-src-head@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to