From owner-svn-src-head@FreeBSD.ORG Sat Dec 18 09:17:08 2010 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 7DAB61065679; Sat, 18 Dec 2010 09:17:08 +0000 (UTC) (envelope-from alc@rice.edu) Received: from mh6.mail.rice.edu (mh6.mail.rice.edu [128.42.201.4]) by mx1.freebsd.org (Postfix) with ESMTP id 37ADB8FC14; Sat, 18 Dec 2010 09:17:07 +0000 (UTC) Received: from mh6.mail.rice.edu (localhost.localdomain [127.0.0.1]) by mh6.mail.rice.edu (Postfix) with ESMTP id 159E128F814; Sat, 18 Dec 2010 03:17:07 -0600 (CST) X-Virus-Scanned: by amavis-2.6.4 at mh6.mail.rice.edu, auth channel Received: from mh6.mail.rice.edu ([127.0.0.1]) by mh6.mail.rice.edu (mh6.mail.rice.edu [127.0.0.1]) (amavis, port 10026) with ESMTP id Q8Z-NzGvFlRo; Sat, 18 Dec 2010 03:17:06 -0600 (CST) Received: from adsl-216-63-78-18.dsl.hstntx.swbell.net (adsl-216-63-78-18.dsl.hstntx.swbell.net [216.63.78.18]) (using TLSv1 with cipher RC4-MD5 (128/128 bits)) (No client certificate requested) (Authenticated sender: alc) by mh6.mail.rice.edu (Postfix) with ESMTPSA id 6EBB628F813; Sat, 18 Dec 2010 03:17:06 -0600 (CST) Message-ID: <4D0C7C0F.4000703@rice.edu> Date: Sat, 18 Dec 2010 03:17:03 -0600 From: Alan Cox User-Agent: Thunderbird 2.0.0.24 (X11/20100725) MIME-Version: 1.0 To: Joel Dahl References: <201012092016.oB9KG05P049565@svn.freebsd.org> <20101218070800.GA59878@pluto.vnode.local> In-Reply-To: <20101218070800.GA59878@pluto.vnode.local> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Cc: Alan Cox , svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org Subject: Re: svn commit: r216333 - head/sys/i386/i386 X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 18 Dec 2010 09:17:08 -0000 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); }