From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:50193) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZyGph-0002rx-1A for qemu-devel@nongnu.org; Mon, 16 Nov 2015 05:16:21 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ZyGpd-0008MY-Re for qemu-devel@nongnu.org; Mon, 16 Nov 2015 05:16:20 -0500 Message-ID: <1447668968.3081.91.camel@kernel.crashing.org> From: Benjamin Herrenschmidt Date: Mon, 16 Nov 2015 21:16:08 +1100 In-Reply-To: <20151116050016.GB2747@voom.fritz.box> References: <1447201710-10229-1-git-send-email-benh@kernel.crashing.org> <1447201710-10229-4-git-send-email-benh@kernel.crashing.org> <20151116050016.GB2747@voom.fritz.box> Content-Type: text/plain; charset="UTF-8" Mime-Version: 1.0 Content-Transfer-Encoding: quoted-printable Subject: Re: [Qemu-devel] [Qemu-ppc] [PATCH 03/77] ppc: Do some batching of TCG tlb flushes List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: David Gibson Cc: qemu-ppc@nongnu.org, qemu-devel@nongnu.org On Mon, 2015-11-16 at 16:00 +1100, David Gibson wrote: >=C2=A0 > > =C2=A0//#define DEBUG_MMU > > =C2=A0//#define DEBUG_BATS > > @@ -1940,6 +1941,7 @@ void ppc_tlb_invalidate_all(CPUPPCState *env) > > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0case POWERPC_MMU_2_03: > > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0case POWERPC_MMU_2_06: > > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0case POWERPC_MMU_2_07: > > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0env->tlb_need_flush = =3D 0; > > =C2=A0#endif /* defined(TARGET_PPC64) */ > > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0tlb_flush(CPU(c= pu), 1); > > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0break; >=20 > Any particular reason you're leaving this one as an immediate rather > than deferred flush? A couple yes. It's mostly unused on server CPUs (we don't do tlbia), and it's used by ppc_cpu_reset(). In that latter case, I like having everything really cleaned up ...=C2=A0 > Should you be clearing the pending flush flag cpu_reset()? That should happen as a result of the above. Cheers, Ben.