Date: Thu, 12 Sep 2013 21:23:39 -0400 From: "J.R. Oldroyd" <fbsd@opal.com> To: John Baldwin <jhb@freebsd.org> Cc: freebsd-acpi@freebsd.org Subject: Re: panic after acpi suspend/resume 9.1, 9.2rc3 Message-ID: <20130912212339.3b446e73@shibato> In-Reply-To: <201309091654.27160.jhb@freebsd.org> References: <20130908172454.15812086@shibato> <201309091122.30193.jhb@freebsd.org> <20130909145744.63fcba85@shibato> <201309091654.27160.jhb@freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
--Sig_/91/B65Hd0S1PoDOMY+KL+UI Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: quoted-printable On Mon, 9 Sep 2013 16:54:27 -0400 John Baldwin <jhb@freebsd.org> wrote: > > > >=20 > > > > (kgdb) list *0xffffffff80ceddcd > > > > 0xffffffff80ceddcd is in pmap_enter (../../../amd64/amd64/pmap.c:35= 77). > > > > 3572 if ((m->oflags & VPO_UNMANAGED) =3D=3D 0) { > > > > 3573 newpte |=3D PG_MANAGED; > > > > 3574 pv =3D get_pv_entry(pmap, &lock); > > > > 3575 pv->pv_va =3D va; > > > > 3576 CHANGE_PV_LIST_LOCK_TO_PHYS(&lock, pa); > > > > 3577 TAILQ_INSERT_TAIL(&m->md.pv_list, pv, pv_li= st); > > > > 3578 if ((newpte & PG_RW) !=3D 0) > > > > 3579 vm_page_aflag_set(m, PGA_WRITEABLE); > > > > 3580 } > > > > 3581 > > >=20 > > > So it seems like pv_list of a page might be busted? Can you try look= ing at > > > the disassembly to see if you can find 'm' in one of the registers? > > >=20 > >=20 > > Sure, here you go... > >=20 > > (kgdb) print m > > $1 =3D 0xfffffe00b260b430 > > (kgdb) print m->md.pv_list > > $4 =3D {tqh_first =3D 0x0, tqh_last =3D 0x0} >=20 > Eh, tqh_last shouldn't bmd.pv_liste NULL here IIRC. I think it should po= int at > &tqh_first. >=20 I had a quick look at the code for this list. md.pv_list is initialized in pmap_page_init() and there's also a similar piece of init in pmap_init(), both in sys/amd64/amd64/pmap.c and also in the other arch's. But I have little background on how the VM code is supposed to be initialized or saved on suspend and re-inited on resume. It'd take me ages to work out what should be going on here. What's the best course of action here...? Open a PR and hand-over to someone with more background in these areas? -jr --Sig_/91/B65Hd0S1PoDOMY+KL+UI Content-Type: application/pgp-signature; name=signature.asc Content-Disposition: attachment; filename=signature.asc -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.19 (FreeBSD) iEYEARECAAYFAlIyaSMACgkQls33urr0k4ls0QCfSUJTi9q9e/wQ75c1/O/zIZ7z X/UAni1PblYvBGhADL10hR6VSX8Vjif1 =0zVN -----END PGP SIGNATURE----- --Sig_/91/B65Hd0S1PoDOMY+KL+UI--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20130912212339.3b446e73>