[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [Qemu-ppc] [RFC PATCH v2 4/4] spapr: Fix migration of R
From: |
Suraj Jitindar Singh |
Subject: |
Re: [Qemu-devel] [Qemu-ppc] [RFC PATCH v2 4/4] spapr: Fix migration of Radix guests |
Date: |
Mon, 22 May 2017 16:30:50 +1000 |
On Fri, 2017-05-19 at 11:10 +0530, Bharata B Rao wrote:
> Fix migration of radix guests by ensuring that we issue
> KVM_PPC_CONFIGURE_V3_MMU for radix case post migration.
>
> Reported-by: Nageswara R Sastry <address@hidden>
> Signed-off-by: Bharata B Rao <address@hidden>
> ---
> hw/ppc/spapr.c | 12 ++++++++++++
> 1 file changed, 12 insertions(+)
>
> diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c
> index daf335c..8f20f14 100644
> --- a/hw/ppc/spapr.c
> +++ b/hw/ppc/spapr.c
> @@ -1400,6 +1400,18 @@ static int spapr_post_load(void *opaque, int
> version_id)
> err = spapr_rtc_import_offset(&spapr->rtc, spapr-
> >rtc_offset);
> }
This will break migration for tcg radix guests.
Given that there is essentially nothing special we need to do on
incoming tcg migration, I suggest we make it:
if (spapr->patb_entry && kvm_enabled()) {
[snip]
}
>
> + if (spapr->patb_entry) {
> + PowerPCCPU *cpu = POWERPC_CPU(first_cpu);
> + if (kvmppc_has_cap_mmu_radix() && kvm_enabled()) {
Why not make this a bit more generic? Something like:
err = kvmppc_configure_v3_mmu(cpu, !!(spapr->patb_entry & PATBE1_GR),
!!(cpu->env.spr[SPR_LPCR] & LPCR_GTSE), spapr->patb_entry);
if (err) {
error_report("Process table config unsupported by the host");
return -EINVAL;
}
return err;
While I don't think it's possible currently, there is nothing
inherently incorrect about having a non-zero process table entry for a
hash guest. And this saves a future update.
> + err = kvmppc_configure_v3_mmu(cpu,
> SPAPR_PROC_TABLE_RADIX,
> + ((cpu->env.spr[SPR_LPCR] & LPCR_GTSE) ?
> SPAPR_PROC_TABLE_GTSE :
> + 0), spapr->patb_entry);
> + } else {
> + error_report("Radix guest is unsupported by the host");
> + return -EINVAL;
> + }
> + }
> +
> return err;
> }
>
- Re: [Qemu-devel] [RFC PATCH v2 1/4] migration: Introduce unregister_savevm_live(), (continued)