Skip site navigation (1)Skip section navigation (2)
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>