On Thu, Jul 16, 2020 at 07:11:21PM +0200, Greg Kurz wrote: > Nested KVM HV only works if the kernel is using the radix MMU mode, ie. > the CPU is POWER9 and it is not running in some pre-power9 compat mode. > Otherwise, the KVM HV module fails to load in the guest with -ENODEV. > It might be painful for a user to discover this late that nested cannot > work with their setup. Erroring out at machine init instead seems to be > the best we can do. > > Signed-off-by: Greg Kurz <[email protected]> > Reviewed-by: Laurent Vivier <[email protected]>
Applied to ppc-for-5.2.
> ---
> 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 275f5bd0342c..10a80a8159f4 100644
> --- a/hw/ppc/spapr_caps.c
> +++ b/hw/ppc/spapr_caps.c
> @@ -382,6 +382,8 @@ static void cap_nested_kvm_hv_apply(SpaprMachineState
> *spapr,
> uint8_t val, Error **errp)
> {
> ERRP_GUARD();
> + PowerPCCPU *cpu = POWERPC_CPU(first_cpu);
> +
> if (!val) {
> /* capability disabled by default */
> return;
> @@ -391,6 +393,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
signature.asc
Description: PGP signature
