Re: [PATCH 02/12] KVM: PPC: E500: Explicitly mark shadow maps invalid

Scott Wood
2013-02-15T19:45:51Z

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 <agraf@suse.de>
> ---
> 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