[PATCH kernel v2] powerpc/mm: Flush radix process translations when setting MMU type
Laurent Vivier
lvivier at redhat.com
Thu Feb 8 01:33:04 AEDT 2018
On 01/02/2018 06:09, Alexey Kardashevskiy wrote:
> Radix guests do normally invalidate process-scoped translations when
> a new pid is allocated but migrated guests do not invalidate these so
> migrated guests crash sometime, especially easy to reproduce with
> migration happening within first 10 seconds after the guest boot start on
> the same machine.
>
> This adds the "Invalidate process-scoped translations" flush to fix
> radix guests migration.
>
> Signed-off-by: Alexey Kardashevskiy <aik at ozlabs.ru>
> ---
> Changes:
> v2:
> * removed PPC_TLBIE_5() from the !(old&PATH_HR) case as it is pointless
> on hash
>
> ---
>
>
> Not so sure that "process-scoped translations" only require flushing
> at pid allocation and migration.
>
> ---
> arch/powerpc/mm/pgtable_64.c | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/arch/powerpc/mm/pgtable_64.c b/arch/powerpc/mm/pgtable_64.c
> index c9a623c..d75dd52 100644
> --- a/arch/powerpc/mm/pgtable_64.c
> +++ b/arch/powerpc/mm/pgtable_64.c
> @@ -471,6 +471,8 @@ void mmu_partition_table_set_entry(unsigned int lpid, unsigned long dw0,
> if (old & PATB_HR) {
> asm volatile(PPC_TLBIE_5(%0,%1,2,0,1) : :
> "r" (TLBIEL_INVAL_SET_LPID), "r" (lpid));
> + asm volatile(PPC_TLBIE_5(%0,%1,2,1,1) : :
> + "r" (TLBIEL_INVAL_SET_LPID), "r" (lpid));
> trace_tlbie(lpid, 0, TLBIEL_INVAL_SET_LPID, lpid, 2, 0, 1);
> } else {
> asm volatile(PPC_TLBIE_5(%0,%1,2,0,0) : :
>
This patch fixes for me a VM migration crash on POWER9.
Tested-by: Laurent Vivier <lvivier at redhat.com>
Thanks,
Laurent
More information about the Linuxppc-dev
mailing list