Hi Igor, Andreas, The issues you commented in the previous version have been fixed in this one. Could you please help to review it?
Regards, Gu On 02/13/2015 06:25 PM, Zhu Guihua wrote: > This series is based on the previous patchset from Chen Fan: > https://lists.nongnu.org/archive/html/qemu-devel/2014-05/msg02360.html > > We try to make cpu hotplug with device_add, and make > "-device foo-x86_64-cpu" available, also we can set apic-id > property with command line, if without setting apic-id property, > we offer the first unoccupied apic id as the default new apic id. > When hotplug cpu with device_add, additional check of APIC ID will be > done after cpu object initialization which was different from > 'cpu_add' command that check 'ids' at the beginning. > > The is the first half of the previous series: > [RFC V2 00/10] cpu: add device_add foo-x86_64-cpu and i386 cpu hot remove > support > https://lists.nongnu.org/archive/html/qemu-devel/2014-08/msg04779.html > > --- > Changelog since v3: > -fix cross version migration issue > -drop ICC bus impl > -do a generic for apic to send gpe event > -do not use migration code for CONFIG_USER_ONLY target > > Changelog since v2: > -rebase on latest upstream. > -add cpu instance finalize. > > Changelog since v1: > -rebased on latest upstream. > -introduce a help function to hide the access to icc_bus. > -use a macro ACPI_ID_NOT_SET to replace the magic number(0xFFFFFFFF). > > Changelog since RFC: > -split out APIC vmstate/QMP-monitor changes into separate patches. > -add the handle of the startup cpus(-device foo). > -remove duplicated checking about env->cpuid_apic_id. > -do actual APIC ID allocation at realize time if it is not set before. > -remove the unneeded x86_cpu_cpudef_instance_init(). > -split off device_del support out here. > --- > > Chen Fan (4): > cpu/apic: drop icc bus/bridge/ > icc_bus: remove icc related files > cpu: introduce CpuTopoInfo structure for argument simplification > cpu: add device_add foo-x86_64-cpu support > > Gu Zheng (4): > qom/cpu: move register_vmstate to common CPUClass.realizefn > qom/cpu: move apic vmstate register into x86_cpu_apic_realize > monitor: use cc->get_arch_id as the cpu index > i386/cpu: add instance finalize callback > > Zhu Guihua (2): > cpu: introduce get_compat_arch_id() method and override it for X86CPU > acpi: introduce acpi_send_gpe_event() > > MAINTAINERS | 6 -- > cpus.c | 4 +- > default-configs/i386-softmmu.mak | 1 - > default-configs/x86_64-softmmu.mak | 1 - > exec.c | 25 +++++--- > hw/acpi/core.c | 7 +++ > hw/acpi/cpu_hotplug.c | 6 +- > hw/cpu/Makefile.objs | 2 - > hw/cpu/icc_bus.c | 118 > ------------------------------------- > hw/i386/kvm/apic.c | 10 +++- > hw/i386/pc.c | 27 ++------- > hw/i386/pc_piix.c | 9 +-- > hw/i386/pc_q35.c | 9 +-- > hw/intc/apic.c | 16 +++-- > hw/intc/apic_common.c | 17 +++--- > include/hw/acpi/acpi.h | 3 + > include/hw/cpu/icc_bus.h | 82 -------------------------- > include/hw/i386/apic_internal.h | 9 +-- > include/hw/i386/pc.h | 3 +- > include/qom/cpu.h | 6 ++ > monitor.c | 4 +- > qom/cpu.c | 10 ++++ > target-i386/cpu.c | 95 ++++++++++++++++++++++------- > target-i386/cpu.h | 3 +- > target-i386/topology.h | 66 ++++++++++++++++----- > 25 files changed, 223 insertions(+), 316 deletions(-) > delete mode 100644 hw/cpu/icc_bus.c > delete mode 100644 include/hw/cpu/icc_bus.h >