Hello, Here's my cleaned up version of slim x86 CPU subclasses. Second patch didn't get a lot of testing yet.
Loading cpudef is still in main initfn since otherwise the host type would need to be relocated. Can be cleaned up as follow-ups. I wonder whether we are intentionally registering the host type even for !CONFIG_KVM? Instantiating it will then always lead to assertion failure. Available for testing here: git://github.com/afaerber/qemu-cpu.git qom-cpu-x86-subclasses.v10 https://github.com/afaerber/qemu-cpu/commits/qom-cpu-x86-subclasses.v10 Regards, Andreas v9 -> v10: * Cleaned up documentation comments. * Prepended patch to implement CPUClass::class_by_name(), rebased on it. * Cleaned up naming (..._class_init, ..._initfn, type vs. class). * Dropped duplicate white line. * Dropped unnecessary .abstract, .instance_size, .class_size fields. * Aligned model type registration with other targets by having the registration function operate on one model only. * Relocated cpudef-based types to after x86_cpu_load_cpudef(). * Moved assignment of cpu_def into cpudef-specific class_init. (went through various hands, last ehabkost's) v2 -> v3: * Instead of re-coding all CPU definitions as class_init functions, leave the built-in definition array in place and place x86_def_t in the class. * Use kvm_arch_init() hook to assure class_init succeeds for -cpu host. Suggested by Eduardo. v1-> v2: * Instead of turning x86_def_t into X86CPUInfo to initialize classes, drop it completely and register types manually with customizable TypeInfos * Use new list facilities for printing -cpu ? models * Adopt new name scheme suggested by Eduardo and ideas from my alpha series * Keep short names in -cpu ? output for alignment reasons * Merge cpu_x86_init() into cpu.c:cpu_x86_register() * Append patch showing Haswell as subclass of SandyBridge Cc: Eduardo Habkost <ehabk...@redhat.com> Cc: Igor Mammedov <imamm...@redhat.com> Cc: Paolo Bonzini <pbonz...@redhat.com> Cc: Anthony Liguori <anth...@codemonkey.ws> Andreas Färber (1): target-i386: Prepare CPUClass::class_by_name for X86CPU Eduardo Habkost (1): target-i386: X86CPU model subclasses target-i386/cpu-qom.h | 15 ++++ target-i386/cpu.c | 197 +++++++++++++++++++++++++++++++------------------- 2 files changed, 138 insertions(+), 74 deletions(-) -- 1.8.4.5