On Fri, Jan 04, 2013 at 05:56:16PM -0200, Eduardo Habkost wrote: > This is a new RFC for the x86 CPU subclasses. This version handles the "host" > subclass differently, and I believe this made the code much simpler. > > However, a few tricks were necessary: > > - To keep the "default_kvm_features" compat functions working (this shouldn't > be necessary once we start using global properties for the compat code). > - For the vendor property setting (because it depends on a kvm_enabled() > check, > that can't be made on class_init). I don't know how we will be able to > convert that logic using global properties/defaults in the future. > - To keep the original model names in the "-cpu ?" output, for compatibility. > > This series depends on multiple series: > - pc-1.4 kvm_mmu_opt disable series I sent today; > - -cpu "enforce" fix series I sent today; > - A experimental rebased version of Igor's "wave 2" x86 CPU init cleanup. > > Because of the tricky dependencies, I recommend you use the git tree for > testing: > git://github.com/ehabkost/qemu-hacks.git x86-cpu-model-classes.RFC.v4 > https://github.com/ehabkost/qemu-hacks/tree/x86-cpu-model-classes.RFC.v4
I submitted newer versions of the dependencies. There's a git branch of this RFC rebased on top of the newer dependencies, here: git://github.com/ehabkost/qemu-hacks.git x86-cpu-model-classes.RFC.v5 https://github.com/ehabkost/qemu-hacks/tree/x86-cpu-model-classes.RFC.v5 > > Eduardo Habkost (6): > target-i386: Move CPU object creation to cpu.c > target-i386: Make cpu_x86_create() get Error argument > target-i386: Simplify cpu_x86_find_by_name() logic > target-i386: Set feature string parsing results directly on CPU > object > target-i386: Move kvm_features/hypervisor initialization to > cpu_x86_find_by_name() > target-i386: CPU model subclasses > > include/sysemu/kvm.h | 3 + > target-i386/cpu-qom.h | 26 + > target-i386/cpu.c | 1548 > ++++++++++++++++++++++++++++++------------------- > target-i386/cpu.h | 4 +- > target-i386/helper.c | 26 +- > target-i386/kvm.c | 2 + > 6 files changed, 988 insertions(+), 621 deletions(-) > > -- > 1.7.11.7 > > -- Eduardo