qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH 2.1] PPC: KVM: Fix g3beige and mac99 when HV is


From: Paolo Bonzini
Subject: Re: [Qemu-devel] [PATCH 2.1] PPC: KVM: Fix g3beige and mac99 when HV is loaded
Date: Thu, 24 Jul 2014 15:44:47 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.6.0

Il 24/07/2014 10:52, Alexander Graf ha scritto:
> On PPC we have 2 different styles of KVM: PR and HV. HV can only virtualize
> sPAPR guests while PR can virtualize everything that's reasonably close to
> the host hardware platform.
> 
> As long as only one kernel module (PR or HV) is loaded, the "default" kvm type
> is the module that's loaded. So if your hardware only supports PR mode you can
> easily spawn a Mac VM.
> 
> However, if both HV and PR are loaded we default to HV mode. And in that case
> the Mac machines have to explicitly ask for PR mode to get a working VM.
> 
> Fix this up by explicitly having the Mac machines ask for PR style KVM. This
> fixes bootup of Mac VMs on systems where bot HV and PR kvm modules are loaded
> for me.
> 
> Signed-off-by: Alexander Graf <address@hidden>
> ---
>  hw/ppc/mac_newworld.c | 7 +++++++
>  hw/ppc/mac_oldworld.c | 7 +++++++
>  2 files changed, 14 insertions(+)
> 
> diff --git a/hw/ppc/mac_newworld.c b/hw/ppc/mac_newworld.c
> index f5bccd2..2e66a35 100644
> --- a/hw/ppc/mac_newworld.c
> +++ b/hw/ppc/mac_newworld.c
> @@ -477,12 +477,19 @@ static void ppc_core99_init(MachineState *machine)
>      qemu_register_boot_set(fw_cfg_boot_set, fw_cfg);
>  }
>  
> +static int core99_kvm_type(const char *arg)
> +{
> +    /* Always force PR KVM */
> +    return 2;
> +}
> +
>  static QEMUMachine core99_machine = {
>      .name = "mac99",
>      .desc = "Mac99 based PowerMAC",
>      .init = ppc_core99_init,
>      .max_cpus = MAX_CPUS,
>      .default_boot_order = "cd",
> +    .kvm_type = core99_kvm_type,
>  };
>  
>  static void core99_machine_init(void)
> diff --git a/hw/ppc/mac_oldworld.c b/hw/ppc/mac_oldworld.c
> index cd9bdbc..ec7ed38 100644
> --- a/hw/ppc/mac_oldworld.c
> +++ b/hw/ppc/mac_oldworld.c
> @@ -346,6 +346,12 @@ static void ppc_heathrow_init(MachineState *machine)
>      qemu_register_boot_set(fw_cfg_boot_set, fw_cfg);
>  }
>  
> +static int heathrow_kvm_type(const char *arg)
> +{
> +    /* Always force PR KVM */
> +    return 2;
> +}
> +
>  static QEMUMachine heathrow_machine = {
>      .name = "g3beige",
>      .desc = "Heathrow based PowerMAC",
> @@ -355,6 +361,7 @@ static QEMUMachine heathrow_machine = {
>      .is_default = 1,
>  #endif
>      .default_boot_order = "cd", /* TOFIX "cad" when Mac floppy is 
> implemented */
> +    .kvm_type = heathrow_kvm_type,
>  };
>  
>  static void heathrow_machine_init(void)
> 

Why should anything except pseries ever use HV KVM?

Paolo



reply via email to

[Prev in Thread] Current Thread [Next in Thread]