Il 29/08/2014 22:31, 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 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 <[email protected]> > Cc: Christian Borntraeger <[email protected]> > Cc: Alexander Graf <[email protected]> > Cc: "Jason J. Herne" <[email protected]> > Cc: Paolo Bonzini <[email protected]> > Cc: Andreas Färber <[email protected]> > Cc: Marcel Apfelbaum <[email protected]> > Cc: "Michael S. Tsirkin" <[email protected]> > > 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: 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 > accel: Save AccelState on MachineState when initializing > kvm: Make KVMState be the TYPE_KVM_ACCEL instance struct > > arch_init.c | 5 -- > hw/core/Makefile.objs | 1 + > hw/core/accel.c | 157 > +++++++++++++++++++++++++++++++++++++++++++++ > include/hw/accel.h | 62 ++++++++++++++++++ > include/hw/boards.h | 1 + > include/hw/xen/xen.h | 1 - > include/qemu/typedefs.h | 3 + > 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 hw/core/accel.c > create mode 100644 include/hw/accel.h >
Just few small remarks, otherwise looks good. Thanks! Paolo
