[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PULL v2 12/13] x86: do not advertise die-id in query-hotpl
From: |
Eduardo Habkost |
Subject: |
[Qemu-devel] [PULL v2 12/13] x86: do not advertise die-id in query-hotpluggbale-cpus if '-smp dies' is not set |
Date: |
Tue, 3 Sep 2019 18:02:00 -0300 |
From: Igor Mammedov <address@hidden>
Commit 176d2cda0 (i386/cpu: Consolidate die-id validity in smp context) added
new 'die-id' topology property to CPUs and exposed it via QMP command
query-hotpluggable-cpus, which broke -device/device_add cpu-foo for existing
users that do not support die-id/dies yet. That's would be fine if it happened
to new machine type only but it also happened to old machine types,
which breaks migration from old QEMU to the new one, for example following CLI:
OLD-QEMU -M pc-i440fx-4.0 -smp 1,max_cpus=2 \
-device qemu64-x86_64-cpu,socket-id=1,core-id=0,thread-id
is not able to start with new QEMU, complaining about invalid die-id.
After discovering regression, the patch
"pc: Don't make die-id mandatory unless necessary"
makes die-id optional so old CLI would work.
However it's not enough as new QEMU still exposes die-id via
query-hotpluggbale-cpus
QMP command, so the users that started old machine type on new QEMU, using all
properties (including die-id) received from QMP command (as required), won't be
able to start old QEMU using the same properties since it doesn't support
die-id.
Fix it by hiding die-id in query-hotpluggbale-cpus for all machine types in case
'-smp dies' is not provided on CLI or -smp dies = 1', in which case smp_dies ==
1
and APIC ID is calculated in default way (as it was before DIE support) so we
won't
need compat code as in both cases the topology provided to guest via CPUID is
the same.
Signed-off-by: Igor Mammedov <address@hidden>
Message-Id: <address@hidden>
Reviewed-by: Eduardo Habkost <address@hidden>
Signed-off-by: Eduardo Habkost <address@hidden>
---
hw/i386/pc.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/hw/i386/pc.c b/hw/i386/pc.c
index c7200b0b54..bad866fe44 100644
--- a/hw/i386/pc.c
+++ b/hw/i386/pc.c
@@ -2916,8 +2916,10 @@ static const CPUArchIdList
*pc_possible_cpu_arch_ids(MachineState *ms)
ms->smp.threads, &topo);
ms->possible_cpus->cpus[i].props.has_socket_id = true;
ms->possible_cpus->cpus[i].props.socket_id = topo.pkg_id;
- ms->possible_cpus->cpus[i].props.has_die_id = true;
- ms->possible_cpus->cpus[i].props.die_id = topo.die_id;
+ if (pcms->smp_dies > 1) {
+ ms->possible_cpus->cpus[i].props.has_die_id = true;
+ ms->possible_cpus->cpus[i].props.die_id = topo.die_id;
+ }
ms->possible_cpus->cpus[i].props.has_core_id = true;
ms->possible_cpus->cpus[i].props.core_id = topo.core_id;
ms->possible_cpus->cpus[i].props.has_thread_id = true;
--
2.21.0
- [Qemu-devel] [PULL v2 04/13] numa: move numa global variable have_numa_distance into MachineState, (continued)
- [Qemu-devel] [PULL v2 04/13] numa: move numa global variable have_numa_distance into MachineState, Eduardo Habkost, 2019/09/03
- [Qemu-devel] [PULL v2 03/13] numa: move numa global variable nb_numa_nodes into MachineState, Eduardo Habkost, 2019/09/03
- [Qemu-devel] [PULL v2 05/13] numa: move numa global variable numa_info into MachineState, Eduardo Habkost, 2019/09/03
- [Qemu-devel] [PULL v2 06/13] pc: Fix error message on die-id validation, Eduardo Habkost, 2019/09/03
- [Qemu-devel] [PULL v2 08/13] pc: Don't make die-id mandatory unless necessary, Eduardo Habkost, 2019/09/03
- [Qemu-devel] [PULL v2 02/13] hw/arm: simplify arm_load_dtb, Eduardo Habkost, 2019/09/03
- [Qemu-devel] [PULL v2 09/13] qapi: report the default CPU type for each machine, Eduardo Habkost, 2019/09/03
- [Qemu-devel] [PULL v2 07/13] pc: Improve error message when die-id is omitted, Eduardo Habkost, 2019/09/03
- [Qemu-devel] [PULL v2 10/13] hostmem-file: fix pmem file size check, Eduardo Habkost, 2019/09/03
- [Qemu-devel] [PULL v2 11/13] i386/vmmouse: Properly reset state, Eduardo Habkost, 2019/09/03
- [Qemu-devel] [PULL v2 12/13] x86: do not advertise die-id in query-hotpluggbale-cpus if '-smp dies' is not set,
Eduardo Habkost <=
- [Qemu-devel] [PULL v2 13/13] migration: Do not re-read the clock on pre_save in case of paused guest, Eduardo Habkost, 2019/09/03
- Re: [Qemu-devel] [PULL v2 00/13] Machine + x86 queue, 2019-09-03, Peter Maydell, 2019/09/04