qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH qom-cpu-next v3 0/4] target-i386: X86CPU subclasses
@ 2013-02-02  0:37 Andreas Färber
  2013-02-02  0:37 ` [Qemu-devel] [PATCH qom-cpu-next v3 1/4] target-i386: Move cpu_x86_init() Andreas Färber
                   ` (4 more replies)
  0 siblings, 5 replies; 6+ messages in thread
From: Andreas Färber @ 2013-02-02  0:37 UTC (permalink / raw)
  To: qemu-devel
  Cc: ehabkost, blauwirbel, anthony, imammedo, Andreas Färber,
	Richard Henderson

Hello,

Long announced, here it is after the freeze: My 3rd attempt at CPU subclasses.
v3 is closer to v1 again, slimmed down not to touch x86_def_t much.

It was noticed that in theory a QOM class enumeration could lead to the host
CPU class_init running before kvm_init(). My proposal is to make the class_init
reentrant and to re-run it from target-i386's kvm_arch_init() if necessary.
Similar to target-ppc, -cpu host code is placed into kvm.c rather than cpu.c.

This conversion is an interim solution to get the code structured in a
QOM-friendly way and to reach a hot-plug friendly and cross-target aligned
CPU initialization. It decouples the work of introducing subclasses (to hide
object initialization from cpu_init() and device_add) from any x86-internal
improvements (like Igor's global compat properties set from pc-x.y machines).
The -cpu ? and QMP support is still based on array iteration.

Based on qom-cpu-next queue, which contains some cpu_init() cleanups already.

Available for testing here:
git://github.com/afaerber/qemu-cpu.git qom-cpu-x86-subclasses.v3
https://github.com/afaerber/qemu-cpu/commits/qom-cpu-x86-subclasses.v3

Regards,
Andreas

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: Anthony Liguori <anthony@codemonkey.ws>
Cc: Eduardo Habkost <ehabkost@redhat.com>
Cc: Igor Mammedov <imammedo@redhat.com>
Cc: Blue Swirl <blauwirbel@gmail.com>
Cc: Richard Henderson <rth@twiddle.net>

Andreas Färber (4):
  target-i386: Move cpu_x86_init()
  target-i386: Split command line parsing out of cpu_x86_register()
  target-i386: Slim conversion to X86CPU subclasses
  Remove cpudef_setup() hooks

 arch_init.c                |    7 -
 bsd-user/main.c            |    3 -
 include/sysemu/arch_init.h |    1 -
 linux-user/main.c          |    3 -
 target-i386/cpu-qom.h      |   24 ++++
 target-i386/cpu.c          |  326 ++++++++++++++++++--------------------------
 target-i386/cpu.h          |    3 -
 target-i386/helper.c       |   24 ----
 target-i386/kvm.c          |   93 +++++++++++++
 vl.c                       |    7 -
 10 Dateien geändert, 247 Zeilen hinzugefügt(+), 244 Zeilen entfernt(-)

-- 
1.7.10.4

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2013-02-02  8:01 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-02-02  0:37 [Qemu-devel] [PATCH qom-cpu-next v3 0/4] target-i386: X86CPU subclasses Andreas Färber
2013-02-02  0:37 ` [Qemu-devel] [PATCH qom-cpu-next v3 1/4] target-i386: Move cpu_x86_init() Andreas Färber
2013-02-02  0:37 ` [Qemu-devel] [PATCH qom-cpu-next v3 2/4] target-i386: Split command line parsing out of cpu_x86_register() Andreas Färber
2013-02-02  0:37 ` [Qemu-devel] [PATCH qom-cpu-next v3 3/4] target-i386: Slim conversion to X86CPU subclasses Andreas Färber
2013-02-02  0:37 ` [Qemu-devel] [PATCH qom-cpu-next v3 4/4] Remove cpudef_setup() hooks Andreas Färber
2013-02-02  8:01 ` [Qemu-devel] [PATCH qom-cpu-next v3 0/4] target-i386: X86CPU subclasses Andreas Färber

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).