Because KVM cannot support radix and hash modes concurrently, QEMU can avoid allocating a hash page table if KVM supports radix mode.
Signed-off-by: Sam Bobroff <sam.bobr...@au1.ibm.com> --- hw/ppc/spapr.c | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c index d629e2630c..1411e470c0 100644 --- a/hw/ppc/spapr.c +++ b/hw/ppc/spapr.c @@ -1150,15 +1150,17 @@ static void ppc_spapr_reset(void) /* Check for unknown sysbus devices */ foreach_dynamic_sysbus_device(find_unknown_sysbus_device, NULL); - /* Allocate and/or reset the hash page table */ - spapr_reallocate_hpt(spapr, + if (!kvmppc_has_cap_mmu_radix()) { + /* Allocate and/or reset the hash page table */ + spapr_reallocate_hpt(spapr, spapr_hpt_shift_for_ramsize(machine->maxram_size), &error_fatal); - /* Update the RMA size if necessary */ - if (spapr->vrma_adjust) { - spapr->rma_size = kvmppc_rma_size(spapr_node0_size(), - spapr->htab_shift); + /* Update the RMA size if necessary */ + if (spapr->vrma_adjust) { + spapr->rma_size = kvmppc_rma_size(spapr_node0_size(), + spapr->htab_shift); + } } qemu_devices_reset(); -- 2.11.0