Joel Dahl wrote:
On 09-12-2010 20:16, Alan Cox wrote:
Author: alc
Date: Thu Dec  9 20:16:00 2010
New Revision: 216333
URL: http://svn.freebsd.org/changeset/base/216333

Log:
  When r207410 eliminated the acquisition and release of the page queues
  lock from pmap_extract_and_hold(), it didn't take into account that
  pmap_pte_quick() sometimes requires the page queues lock to be held.
  This change reimplements pmap_extract_and_hold() such that it no
  longer uses pmap_pte_quick(), and thus never requires the page queues
  lock.
For consistency, adopt the same idiom as used by the new
  implementation of pmap_extract_and_hold() in pmap_extract() and
  pmap_mincore().  It also happens to make these functions shorter.

Hi Alan,

This commit makes my laptop hang everytime I quit X.  I just get a black
screen and the machine won't respond to any keys.  Everything works if I
go back to r216330.


Can you please try the following change?

Index: i386/i386/pmap.c
===================================================================
--- i386/i386/pmap.c    (revision 216509)
+++ i386/i386/pmap.c    (working copy)
@@ -1342,7 +1342,8 @@ retry:
               m = PHYS_TO_VM_PAGE(pa);
               vm_page_hold(m);
               PA_UNLOCK(locked_pa);
-       }
+       } else
+               PA_UNLOCK_COND(locked_pa);
       PMAP_UNLOCK(pmap);
       return (m);
}

_______________________________________________
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