From mboxrd@z Thu Jan 1 00:00:00 1970 From: Scott Wood Subject: Re: [PATCH 02/12] KVM: PPC: E500: Explicitly mark shadow maps invalid Date: Fri, 15 Feb 2013 13:45:51 -0600 Message-ID: <1360957551.6960.2@snotra> References: <1360887388-6586-1-git-send-email-agraf@suse.de> <1360887388-6586-3-git-send-email-agraf@suse.de> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii"; delsp=Yes; format=Flowed Content-Transfer-Encoding: 8BIT Cc: , "kvm@vger.kernel.org mailing list" , Gleb Natapov , Marcelo Tosatti To: Alexander Graf Return-path: In-Reply-To: <1360887388-6586-3-git-send-email-agraf@suse.de> (from agraf@suse.de on Thu Feb 14 18:16:18 2013) Content-Disposition: inline Sender: kvm-ppc-owner@vger.kernel.org List-Id: kvm.vger.kernel.org On 02/14/2013 06:16:18 PM, Alexander Graf wrote: > When we invalidate shadow TLB maps on the host, we don't mark them > as not valid. But we should. > > Fix this by removing the E500_TLB_VALID from their flags when > invalidating. > > Signed-off-by: Alexander Graf > --- > arch/powerpc/kvm/e500_tlb.c | 13 ++++++++++--- > 1 files changed, 10 insertions(+), 3 deletions(-) > > diff --git a/arch/powerpc/kvm/e500_tlb.c b/arch/powerpc/kvm/e500_tlb.c > index d38ad63..8efb2ac 100644 > --- a/arch/powerpc/kvm/e500_tlb.c > +++ b/arch/powerpc/kvm/e500_tlb.c > @@ -204,9 +204,13 @@ static void inval_gtlbe_on_host(struct > kvmppc_vcpu_e500 *vcpu_e500, > { > struct kvm_book3e_206_tlb_entry *gtlbe = > get_entry(vcpu_e500, tlbsel, esel); > + struct tlbe_ref *ref = &vcpu_e500->gtlb_priv[tlbsel][esel].ref; > > - if (tlbsel == 1 && > - vcpu_e500->gtlb_priv[1][esel].ref.flags & E500_TLB_BITMAP) { > + /* Don't bother with unmapped entries */ > + if (!(ref->flags & E500_TLB_VALID)) > + return; This is broken as pointed out here: http://patchwork.ozlabs.org/patch/220356/ ...and note that I'm still seeing problems even after that fix, which I'll try to debug today. -Scott