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"