qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [PATCH v2] pc: make sure that plugged CPUs are of the s


From: Michael S. Tsirkin
Subject: Re: [Qemu-devel] [PATCH v2] pc: make sure that plugged CPUs are of the same type
Date: Tue, 10 Oct 2017 18:22:01 +0300

On Tue, Oct 10, 2017 at 05:17:40PM +0200, Igor Mammedov wrote:
> heterogeneous cpus are not supported and hotplugging different
> cpu model crashes QEMU:
> 
>   qemu-system-x86_64 -cpu qemu64 -smp 1,maxcpus=2
>   (qemu) device_add host-x86_64-cpu,socket-id=1,core-id=0,thread-id=0,id=foo
>   (qemu) info cpus
>   error: failed to get MSR 0x38d
>   qemu-system-x86_64: target/i386/kvm.c:2121: kvm_get_msrs: Assertion `ret == 
> cpu->kvm_msr_buf->nmsrs' failed.
>   Aborted (core dumped)
> 
> Gracefully fail hotplug process in case of user mistake.
> 
> Reported-by: Greg Kurz <address@hidden>
> Signed-off-by: Igor Mammedov <address@hidden>

Acked-by: Michael S. Tsirkin <address@hidden>

IIUC Paolo's merging this.

> ---
> v2:
>   fix checkpatch error
> ---
>  hw/i386/pc.c | 7 +++++++
>  1 file changed, 7 insertions(+)
> 
> diff --git a/hw/i386/pc.c b/hw/i386/pc.c
> index 05985d4..8e307f7 100644
> --- a/hw/i386/pc.c
> +++ b/hw/i386/pc.c
> @@ -1876,8 +1876,15 @@ static void pc_cpu_pre_plug(HotplugHandler 
> *hotplug_dev,
>      CPUArchId *cpu_slot;
>      X86CPUTopoInfo topo;
>      X86CPU *cpu = X86_CPU(dev);
> +    MachineState *ms = MACHINE(hotplug_dev);
>      PCMachineState *pcms = PC_MACHINE(hotplug_dev);
>  
> +    if (!object_dynamic_cast(OBJECT(cpu), ms->cpu_type)) {
> +        error_setg(errp, "Invalid CPU type, expected cpu type: '%s'",
> +                   ms->cpu_type);
> +        return;
> +    }
> +
>      /* if APIC ID is not set, set it based on socket/core/thread properties 
> */
>      if (cpu->apic_id == UNASSIGNED_APIC_ID) {
>          int max_socket = (max_cpus - 1) / smp_threads / smp_cores;
> -- 
> 2.7.4



reply via email to

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