[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH qom-cpu-next v3 0/4] target-i386: X86CPU subclas
From: |
Andreas Färber |
Subject: |
Re: [Qemu-devel] [PATCH qom-cpu-next v3 0/4] target-i386: X86CPU subclasses |
Date: |
Sat, 02 Feb 2013 09:01:13 +0100 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20130105 Thunderbird/17.0.2 |
Am 02.02.2013 01:37, schrieb Andreas Färber:
> 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
Required a trivial update for s/object_delete/object_unref/: qom-cpu-x86
Andreas
> 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 <address@hidden>
> Cc: Eduardo Habkost <address@hidden>
> Cc: Igor Mammedov <address@hidden>
> Cc: Blue Swirl <address@hidden>
> Cc: Richard Henderson <address@hidden>
>
> 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(-)
--
SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany
GF: Jeff Hawn, Jennifer Guild, Felix Imendörffer; HRB 16746 AG Nürnberg
- [Qemu-devel] [PATCH qom-cpu-next v3 1/4] target-i386: Move cpu_x86_init(), (continued)
Re: [Qemu-devel] [PATCH qom-cpu-next v3 0/4] target-i386: X86CPU subclasses,
Andreas Färber <=