On Thu, Jun 11, 2020 at 03:40:33PM +0200, Greg Kurz wrote: > Nested KVM-HV only works on POWER9. > > Signed-off-by: Greg Kurz > Reviewed-by: Laurent Vivier Hrm. I have mixed feelings about this. It does bring forward an error that we'd otherwise only discover when we try to load the kvm module in the guest. On the other hand, it's kind of a layering violation - really it's KVM's business to report what it can and can't do, rather than having qemu anticipate it. Allowing POWER8 compat for an L2 is something we hope to have in the fairly near future. Allowing POWER8 compat for L1, which is what this covers, is, I'll admit, likely to never happen. > --- > HW/ppc/spapr_caps.c | 10 ++++++++++ > 1 file changed, 10 insertions(+) > > diff --git a/hw/ppc/spapr_caps.c b/hw/ppc/spapr_caps.c > index 27cf2b38af27..dfe3b419daaa 100644 > --- a/hw/ppc/spapr_caps.c > +++ b/hw/ppc/spapr_caps.c > @@ -391,6 +391,8 @@ static void cap_nested_kvm_hv_apply(SpaprMachineState *spapr, > uint8_t val, Error **errp) > { > ERRP_AUTO_PROPAGATE(); > + PowerPCCPU *cpu = POWERPC_CPU(first_cpu); > + > if (!val) { > /* capability disabled by default */ > return; > @@ -400,6 +402,14 @@ static void cap_nested_kvm_hv_apply(SpaprMachineState *spapr, > error_setg(errp, "No Nested KVM-HV support in TCG"); > error_append_hint(errp, "Try appending -machine cap-nested-hv=off\n"); > } else if (kvm_enabled()) { > + if (!ppc_check_compat(cpu, CPU_POWERPC_LOGICAL_3_00, 0, > + spapr->max_compat_pvr)) { > + error_setg(errp, "Nested KVM-HV only supported on POWER9"); > + error_append_hint(errp, > + "Try appending -machine max-cpu-compat=power9\n"); > + return; > + } > + > if (!kvmppc_has_cap_nested_kvm_hv()) { > error_setg(errp, > "KVM implementation does not support Nested KVM-HV"); > > -- David Gibson | I'll have my music baroque, and my code david AT gibson.dropbear.id.au | minimalist, thank you. NOT _the_ _other_ | _way_ _around_! http://www.ozlabs.org/~dgibson