Hello, This is my current QOM CPU patch queue. Please pull.
It includes: * x86 APIC ID topology fixes, * -cpu bugfixes related to QOM CPU subtypes for alpha, arm, m68k, or32 and uc32, * a new QOM accessor object_class_is_abstract(), * a CPUClass::class_by_name hook and cpu_class_by_name() wrapper, * various cleanups for x86, m68k, or32, uc32 and KVM. Another pull is intended before the Hard Freeze to give pending for-1.4 patches sufficient time for review. Regards, Andreas Cc: Anthony Liguori <anth...@codemonkey.ws> Cc: Eduardo Habkost <ehabk...@redhat.com> Cc: Igor Mammedov <imamm...@redhat.com> The following changes since commit 6034fe7bdb555c43022706e228cde8d52a8b341a: xilinx_ethlite: Avoid build warnings in debug code (2013-01-27 01:05:00 +0100) are available in the git repository at: git://github.com/afaerber/qemu-cpu.git qom-cpu for you to fetch changes up to 290adf38967787bd985a5ec67dc4717e83c29eaa: kvm: Pass CPUState to kvm_on_sigbus_vcpu() (2013-01-28 16:57:56 +0100) ---------------------------------------------------------------- Andreas Färber (21): target-openrisc: Drop OpenRISCCPUList target-openrisc: Clean up triple QOM casts target-i386: Simplify cpu_x86_find_by_name() target-i386: Drop redundant list of CPU definitions cpu: Add model resolution support to CPUClass target-arm: Detect attempt to instantiate non-CPU type in cpu_init() target-alpha: Detect attempt to instantiate non-CPU type in cpu_init() target-m68k: Detect attempt to instantiate non-CPU type in cpu_init() target-openrisc: Detect attempt to instantiate non-CPU type in cpu_init() target-unicore32: Detect attempt to instantiate non-CPU type in cpu_init() qom: Introduce object_class_is_abstract() target-alpha: Catch attempt to instantiate abstract type in cpu_init() target-arm: Catch attempt to instantiate abstract type in cpu_init() target-m68k: Catch attempt to instantiate abstract type in cpu_init() target-openrisc: Catch attempt to instantiate abstract type in cpu_init() target-unicore32: Catch attempt to instantiate abstract type in cpu_init() target-openrisc: Use type_register() instead of type_register_static() target-unicore32: Use type_register() instead of type_register_static() target-m68k: Use type_register() instead of type_register_static() cpu: Unconditionalize CPUState fields kvm: Pass CPUState to kvm_on_sigbus_vcpu() Eduardo Habkost (11): kvm: Add fake KVM_FEATURE_CLOCKSOURCE_STABLE_BIT for builds without KVM 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 target-i386: Introduce x86_cpu_apic_id_from_index() function fw_cfg: Remove FW_CFG_MAX_CPUS from fw_cfg_init() cpus.h: Make constant smp_cores/smp_threads available on *-user pc: Set fw_cfg data based on APIC ID calculation target-i386: Topology & APIC ID utility functions pc: Generate APIC IDs according to CPU topology Igor Mammedov (5): target-i386: Print deprecation warning if xlevel < 0x80000000 target-i386: Replace uint32_t vendor fields by vendor string in x86_def_t target-i386: Remove vendor_override field from CPUX86State target-i386: Set custom features/properties without intermediate x86_def_t target-i386: Remove setting tsc-frequency from x86_def_t cpus.c | 8 +- hw/fw_cfg.c | 1 - hw/pc.c | 40 +++- hw/pc_piix.c | 26 ++- hw/ppc/mac_newworld.c | 1 + hw/ppc/mac_oldworld.c | 1 + hw/sun4m.c | 3 + hw/sun4u.c | 1 + include/qom/cpu.h | 17 +- include/qom/object.h | 8 + include/sysemu/cpus.h | 7 + include/sysemu/kvm.h | 6 +- kvm-all.c | 5 +- kvm-stub.c | 2 +- qom/cpu.c | 13 ++ qom/object.c | 5 + target-alpha/cpu.c | 16 +- target-arm/cpu.c | 18 ++ target-arm/helper.c | 6 +- target-i386/cpu.c | 389 ++++++++++++++++-------------------- target-i386/cpu.h | 12 +- target-i386/kvm.c | 6 + target-i386/topology.h | 136 +++++++++++++ target-m68k/cpu.c | 20 +- target-m68k/helper.c | 6 +- target-openrisc/cpu.c | 36 +++- target-openrisc/exception_helper.c | 2 +- target-openrisc/fpu_helper.c | 32 +-- target-openrisc/int_helper.c | 2 +- target-openrisc/interrupt_helper.c | 2 +- target-openrisc/mmu.c | 6 +- target-openrisc/sys_helper.c | 4 +- target-ppc/kvm.c | 5 + target-ppc/translate_init.c | 2 + target-s390x/kvm.c | 5 + target-unicore32/cpu.c | 26 ++- target-unicore32/helper.c | 6 +- tests/.gitignore | 1 + tests/Makefile | 9 +- tests/test-x86-cpuid.c | 110 ++++++++++ 40 Dateien geändert, 709 Zeilen hinzugefügt(+), 292 Zeilen entfernt(-) create mode 100644 target-i386/topology.h create mode 100644 tests/test-x86-cpuid.c