This series uses a much simpler approach than the previous versions: - The APIC ID calculation code is now inside cpu.c - It doesn't require touching the PC CPU creation code at all - It simply uses a static variable to enable the compat behavior on pc-1.3 and older - I considered making the compat-apic-id setting a global property for the X86CPU objects, the only problem is that the fw_cfg initialization code on pc.c also depends on the compat behavior I am sending this as RFC because it depends on two not-included-yet series: - Andreas' qom-cpu-7 branch - My cpu-enforce fixes series I hope to be able to get this buf fix into QEMU 1.4. I don't know if we should try to get this before soft freeze, or we can include it after that. Git tree for reference: git://github.com/ehabkost/qemu-hacks.git apicid-topology.v4 https://github.com/ehabkost/qemu-hacks/tree/apicid-topology.v4 Eduardo Habkost (12): kvm: add KVM_FEATURE_CLOCKSOURCE_STABLE_BIT fake #define target-i386: Don't set any KVM flag by default if KVM is disabled pc: Reverse pc_init_pci() compatibility logic kvm: Create kvm_arch_vcpu_id() function target-i386: kvm: Set vcpu_id to APIC ID instead of CPU index fw_cfg: Remove FW_CFG_MAX_CPUS from fw_cfg_init() target-i386/cpu: Introduce apic_id_for_cpu() function cpus.h: Make constant smp_cores/smp_threads available on *-user pc: Set fw_cfg data based on APIC ID calculation tests: Support target-specific unit tests target-i386: Topology & APIC ID utility functions pc: Generate APIC IDs according to CPU topology hw/fw_cfg.c | 1 - hw/pc.c | 44 +++++++++++++--- hw/pc_piix.c | 27 +++++++--- hw/ppc_newworld.c | 1 + hw/ppc_oldworld.c | 1 + hw/sun4m.c | 3 ++ hw/sun4u.c | 1 + include/sysemu/cpus.h | 7 +++ include/sysemu/kvm.h | 4 ++ kvm-all.c | 2 +- target-i386/cpu.c | 56 ++++++++++++++++----- target-i386/cpu.h | 5 +- target-i386/kvm.c | 6 +++ target-i386/topology.h | 133 +++++++++++++++++++++++++++++++++++++++++++++++++ target-ppc/kvm.c | 5 ++ target-s390x/kvm.c | 5 ++ tests/.gitignore | 1 + tests/Makefile | 19 +++++-- tests/test-x86-cpuid.c | 101 +++++++++++++++++++++++++++++++++++++ 19 files changed, 390 insertions(+), 32 deletions(-) create mode 100644 target-i386/topology.h create mode 100644 tests/test-x86-cpuid.c -- 1.7.11.7 -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html