Re: [PATCH] KVM: PPC: Book3S HV: Always flush TLB in kvmppc_alloc_reset_hpt()

From: Paul Mackerras
Date: Thu Jan 11 2018 - 05:02:03 EST


On Wed, Jan 10, 2018 at 05:04:39PM +1100, David Gibson wrote:
> The KVM_PPC_ALLOCATE_HTAB ioctl(), implemented by kvmppc_alloc_reset_hpt()
> is supposed to completely clear and reset a guest's Hashed Page Table (HPT)
> allocating or re-allocating it if necessary.
>
> In the case where an HPT of the right size already exists and it just
> zeroes it, it forces a TLB flush on all guest CPUs, to remove any stale TLB
> entries loaded from the old HPT.
>
> However, that situation can arise when the HPT is resizing as well - or
> even when switching from an RPT to HPT - so those cases need a TLB flush as
> well.
>
> So, move the TLB flush to trigger in all cases except for errors.
>
> Signed-off-by: David Gibson <david@xxxxxxxxxxxxxxxxxxxxx>
> ---
> arch/powerpc/kvm/book3s_64_mmu_hv.c | 6 ++++--
> 1 file changed, 4 insertions(+), 2 deletions(-)
>
> Paul, this is based on Paolo's KVM tree, but it should apply without
> modification to pretty much any vaguely current tree. It's a pretty
> nasty bug - the case we've found hitting it in the wild is a bit
> esoteric, but it could in theory affect other situations as well.
>
> Please apply ASAP, and should probably be queued for the stable
> branches as well.

Thanks, applied to my kvm-ppc-fixes branch, and I added
cc: stable@xxxxxxxxxxxxxxxx

Paul.