Il 26/09/2014 22:45, Eduardo Habkost ha scritto: > This is an attempt to convert the accel initialization and registration code > to be QOM-based. Some use cases for this are: > > * Isolating KVM-specific CPU initialization and compatibility code; > * Use compat_props to implement accelrator-specific compatibility code > on machine-types; > * Returning accelerator-specific information on the "query-cpu-definitions" > QMP command (e.g. "runnable" information; CPU features). > > Changes v2 -> v3: > * Rename hw/core/accel.c to accel.c > * Rename include/hw/accel.h to include/sysemu/accel.h > * Report unknown accelerator as "not found" instead of "does not exist" > * Squashed "accel: Create accel object when initializing machine" and > "accel: Save AccelState on MachineState when initializing" in a single > patch > > Changes v1 -> v2: > * Remove the TYPE_X86_ACCEL interface and KVM-specific changes, by now > (they will be submitted later). > * Introduce ACCEL_CLASS_NAME(s) macro. > > Cc: Michael Mueller <m...@linux.vnet.ibm.com> > Cc: Christian Borntraeger <borntrae...@de.ibm.com> > Cc: Alexander Graf <ag...@suse.de> > Cc: "Jason J. Herne" <jjhe...@linux.vnet.ibm.com> > Cc: Paolo Bonzini <pbonz...@redhat.com> > Cc: Andreas Färber <afaer...@suse.de> > Cc: Marcel Apfelbaum <marce...@redhat.com> > Cc: "Michael S. Tsirkin" <m...@redhat.com> > > Eduardo Habkost (17): > vl.c: Small coding style fix > accel: Move accel code to accel.c > accel: Create AccelType typedef > accel: Simplify configure_accelerator() using AccelType *acc variable > accel: Move accel name lookup to separate function > accel: Use QOM classes for accel types > accel: Make AccelClass.available() optional > accel: Report unknown accelerator as "not found" instead of "does not > exist" > accel: Move KVM accel registration to kvm-all.c > accel: Move Xen registration code to xen-common.c > accel: Move qtest accel registration to qtest.c > accel: Remove tcg_available() function > accel: Move accel init/allowed code to separate function > accel: Rename 'init' method to 'init_machine' > accel: Pass MachineState object to accel init functions > accel: Create accel object when initializing machine > kvm: Make KVMState be the TYPE_KVM_ACCEL instance struct > > Makefile.objs | 1 + > accel.c | 157 > +++++++++++++++++++++++++++++++++++++++++++++ > arch_init.c | 5 -- > include/hw/boards.h | 1 + > include/hw/xen/xen.h | 1 - > include/qemu/typedefs.h | 3 + > include/sysemu/accel.h | 62 ++++++++++++++++++ > include/sysemu/arch_init.h | 1 - > include/sysemu/kvm.h | 2 - > include/sysemu/qtest.h | 1 - > kvm-all.c | 40 ++++++++++-- > kvm-stub.c | 5 -- > qtest.c | 27 +++++++- > vl.c | 83 +----------------------- > xen-common-stub.c | 6 -- > xen-common.c | 25 +++++++- > 16 files changed, 311 insertions(+), 109 deletions(-) > create mode 100644 accel.c > create mode 100644 include/sysemu/accel.h >
Reviewed-by: Paolo Bonzini <pbonz...@redhat.com>