From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:48216) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XNSqE-0006NW-8u for qemu-devel@nongnu.org; Fri, 29 Aug 2014 16:32:19 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1XNSq8-0002Rv-P2 for qemu-devel@nongnu.org; Fri, 29 Aug 2014 16:32:14 -0400 Received: from mx1.redhat.com ([209.132.183.28]:14293) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XNSq8-0002RV-HU for qemu-devel@nongnu.org; Fri, 29 Aug 2014 16:32:08 -0400 From: Eduardo Habkost Date: Fri, 29 Aug 2014 17:31:33 -0300 Message-Id: <1409344310-5441-1-git-send-email-ehabkost@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Subject: [Qemu-devel] [PATCH v2 00/17] QOMify accelerator code List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: Michael Mueller , Marcel Apfelbaum , "Michael S. Tsirkin" , Alexander Graf , Christian Borntraeger , "Jason J. Herne" , Paolo Bonzini , =?UTF-8?q?Andreas=20F=C3=A4rber?= This is an attempt to convert the accel initialization and registration c= ode 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-definitio= ns" 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 Cc: Christian Borntraeger Cc: Alexander Graf Cc: "Jason J. Herne" Cc: Paolo Bonzini Cc: Andreas F=C3=A4rber Cc: Marcel Apfelbaum Cc: "Michael S. Tsirkin" 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 --=20 1.9.3