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


Reply via email to