From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from [140.186.70.92] (port=36262 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1Q6nXT-00033Z-K6 for qemu-devel@nongnu.org; Mon, 04 Apr 2011 13:26:08 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Q6nXR-0004hQ-Gz for qemu-devel@nongnu.org; Mon, 04 Apr 2011 13:26:06 -0400 Received: from mail-qy0-f173.google.com ([209.85.216.173]:63013) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Q6nXR-0004hK-A6 for qemu-devel@nongnu.org; Mon, 04 Apr 2011 13:26:05 -0400 Received: by qyk36 with SMTP id 36so1476209qyk.4 for ; Mon, 04 Apr 2011 10:26:04 -0700 (PDT) MIME-Version: 1.0 In-Reply-To: <20100522105234.18257.53650.stgit@skyserv> References: <20100522104440.18257.92813.stgit@skyserv> <20100522105234.18257.53650.stgit@skyserv> From: Artyom Tarasenko Date: Mon, 4 Apr 2011 19:25:44 +0200 Message-ID: Subject: Re: [Qemu-devel] [PATCH 4/5] sparc64: fix mmu context at trap levels above zero Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: "Igor V. Kovalenko" , Blue Swirl Cc: qemu-devel@nongnu.org On Sat, May 22, 2010 at 12:52 PM, Igor V. Kovalenko wrote: > --- a/target-sparc/helper.c > +++ b/target-sparc/helper.c > @@ -572,6 +572,23 @@ static int get_physical_address(CPUState *env, targe= t_phys_addr_t *physical, > =A0 =A0 /* ??? We treat everything as a small page, then explicitly flush > =A0 =A0 =A0 =A0everything when an entry is evicted. =A0*/ > =A0 =A0 *page_size =3D TARGET_PAGE_SIZE; > + > +#if defined (DEBUG_MMU) > + =A0 =A0/* safety net to catch wrong softmmu index use from dynamic code= */ What does "wrong softmmu index" mean? Is it an error or an indication that something is not implemented? I'm hitting this net with the following message: get_physical_address DATA tl=3D1 mmu_idx=3D2 primary context=3D0 secondary context=3D0 address=3Dfffb5f40 > + =A0 =A0if (env->tl > 0 && mmu_idx !=3D MMU_NUCLEUS_IDX) { > + =A0 =A0 =A0 =A0DPRINTF_MMU("get_physical_address %s tl=3D%d mmu_idx=3D%= d" > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0" primary context=3D%" PRIx64 > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0" secondary context=3D%" PRIx64 > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0" address=3D%" PRIx64 > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0"\n", > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0(rw =3D=3D 2 ? "CODE" : "DATA"), > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0env->tl, mmu_idx, > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0env->dmmu.mmu_primary_context, > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0env->dmmu.mmu_secondary_context, > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0address); > + =A0 =A0} > +#endif Artyom --=20 Regards, Artyom Tarasenko solaris/sparc under qemu blog: http://tyom.blogspot.com/