Date: Sat, 18 Dec 2010 13:21:17 +0200 From: Kostik Belousov <kostikbel@gmail.com> To: Joel Dahl <joel@freebsd.org> Cc: Alan Cox <alc@freebsd.org>, svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org, Alan Cox <alc@rice.edu> Subject: Re: svn commit: r216333 - head/sys/i386/i386 Message-ID: <20101218112117.GA33073@deviant.kiev.zoral.com.ua> In-Reply-To: <20101218103542.GB59878@pluto.vnode.local> References: <201012092016.oB9KG05P049565@svn.freebsd.org> <20101218070800.GA59878@pluto.vnode.local> <4D0C7C0F.4000703@rice.edu> <20101218103542.GB59878@pluto.vnode.local>
next in thread | previous in thread | raw e-mail | index | archive | help
--i8JMrHMYKg4kZNKW Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Sat, Dec 18, 2010 at 11:35:42AM +0100, Joel Dahl wrote: > On 18-12-2010 3:17, Alan Cox wrote: > > Joel Dahl wrote: > > > On 09-12-2010 20:16, Alan Cox wrote: > > > =20 > > >> 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 qu= eues > > >> lock from pmap_extract_and_hold(), it didn't take into account that > > >> pmap_pte_quick() sometimes requires the page queues lock to be hel= d. > > >> This change reimplements pmap_extract_and_hold() such that it no > > >> longer uses pmap_pte_quick(), and thus never requires the page que= ues > > >> lock. > > >> =20 > > >> 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. > > >> =20 > > > > > > Hi Alan, > > > > > > This commit makes my laptop hang everytime I quit X. I just get a bl= ack > > > screen and the machine won't respond to any keys. Everything works i= f I > > > go back to r216330. > > > > > > =20 > >=20 > > Can you please try the following change? >=20 > I'm afraid the patch didn't make any difference. It still hangs. I already looked at the similar report. It seems that the driver allocates a page using kmem_alloc_contig(), then creates OBJT_SG object, and changes the mapping to use the fictitious page instantiated by sg object. Since kmem_free() sees wired mapping, it calls vm_fault_unwire(), which is incompatible with fictitious wired pages. I cannot guarantee that this is definitely what happens, but backtrace looked plausible. --i8JMrHMYKg4kZNKW Content-Type: application/pgp-signature Content-Disposition: inline -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.11 (FreeBSD) iEYEARECAAYFAk0MmSwACgkQC3+MBN1Mb4go1gCgyMQ7qaqKw82wHfhSl2GFbghR 7jcAn2tZyjfuX3tf54yyj3pUh2K6AID9 =wkly -----END PGP SIGNATURE----- --i8JMrHMYKg4kZNKW--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20101218112117.GA33073>