From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:56974) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XXX4b-0003ho-2r for qemu-devel@nongnu.org; Fri, 26 Sep 2014 11:04:50 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1XXX4R-0002Jw-Ti for qemu-devel@nongnu.org; Fri, 26 Sep 2014 11:04:41 -0400 Received: from mail-wg0-x232.google.com ([2a00:1450:400c:c00::232]:41898) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XXX4R-0002Ii-KB for qemu-devel@nongnu.org; Fri, 26 Sep 2014 11:04:31 -0400 Received: by mail-wg0-f50.google.com with SMTP id l18so8794873wgh.21 for ; Fri, 26 Sep 2014 08:04:25 -0700 (PDT) Sender: Paolo Bonzini Message-ID: <5425805D.5020109@redhat.com> Date: Fri, 26 Sep 2014 17:03:57 +0200 From: Paolo Bonzini MIME-Version: 1.0 References: <1409344310-5441-1-git-send-email-ehabkost@redhat.com> <1409344310-5441-9-git-send-email-ehabkost@redhat.com> In-Reply-To: <1409344310-5441-9-git-send-email-ehabkost@redhat.com> Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH v2 08/17] accel: Move KVM accel registration to kvm-all.c List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Eduardo Habkost , qemu-devel@nongnu.org Cc: Michael Mueller , "Michael S. Tsirkin" , Marcel Apfelbaum , Alexander Graf , Christian Borntraeger , "Jason J. Herne" , =?windows-1252?Q?Andreas_?= =?windows-1252?Q?F=E4rber?= Il 29/08/2014 22:31, Eduardo Habkost ha scritto: > Note that this has an user-visible side-effect: instead of reporting > "KVM is not supported for this target", QEMU binaries not supporting KVM > will report "kvm accelerator does not exist". > > As kvm_availble() always return 1 when CONFIG_KVM is enabled, we don't > need to set AccelClass.available anymore. kvm_enabled() is not being > completely removed yet only because qmp_query_kvm() still uses it. > > This also allows us to make kvm_init() static. > > Signed-off-by: Eduardo Habkost > --- > hw/core/accel.c | 18 ------------------ > include/sysemu/kvm.h | 2 -- > kvm-all.c | 26 +++++++++++++++++++++++++- > kvm-stub.c | 5 ----- > 4 files changed, 25 insertions(+), 26 deletions(-) > > diff --git a/hw/core/accel.c b/hw/core/accel.c > index 483bbe8..61dafcb 100644 > --- a/hw/core/accel.c > +++ b/hw/core/accel.c > @@ -149,23 +149,6 @@ static const TypeInfo xen_accel_type = { > .class_init = xen_accel_class_init, > }; > > -static void kvm_accel_class_init(ObjectClass *oc, void *data) > -{ > - AccelClass *ac = ACCEL_CLASS(oc); > - ac->name = "KVM"; > - ac->available = kvm_available; > - ac->init = kvm_init; > - ac->allowed = &kvm_allowed; > -} > - > -#define TYPE_KVM_ACCEL ACCEL_CLASS_NAME("kvm") > - > -static const TypeInfo kvm_accel_type = { > - .name = TYPE_KVM_ACCEL, > - .parent = TYPE_ACCEL, > - .class_init = kvm_accel_class_init, > -}; > - > static void qtest_accel_class_init(ObjectClass *oc, void *data) > { > AccelClass *ac = ACCEL_CLASS(oc); > @@ -188,7 +171,6 @@ static void register_accel_types(void) > type_register_static(&accel_type); > type_register_static(&tcg_accel_type); > type_register_static(&xen_accel_type); > - type_register_static(&kvm_accel_type); > type_register_static(&qtest_accel_type); > } > > diff --git a/include/sysemu/kvm.h b/include/sysemu/kvm.h > index 174ea36..7b95bfd 100644 > --- a/include/sysemu/kvm.h > +++ b/include/sysemu/kvm.h > @@ -163,8 +163,6 @@ extern KVMState *kvm_state; > > /* external API */ > > -int kvm_init(MachineClass *mc); > - > int kvm_has_sync_mmu(void); > int kvm_has_vcpu_events(void); > int kvm_has_robust_singlestep(void); > diff --git a/kvm-all.c b/kvm-all.c > index b240bf8..7db966e 100644 > --- a/kvm-all.c > +++ b/kvm-all.c > @@ -26,6 +26,7 @@ > #include "qemu/config-file.h" > #include "sysemu/sysemu.h" > #include "hw/hw.h" > +#include "hw/accel.h" > #include "hw/pci/msi.h" > #include "hw/s390x/adapter.h" > #include "exec/gdbstub.h" > @@ -110,6 +111,8 @@ struct KVMState > #endif > }; > > +#define TYPE_KVM_ACCEL ACCEL_CLASS_NAME("kvm") > + > KVMState *kvm_state; > bool kvm_kernel_irqchip; > bool kvm_async_interrupts_allowed; > @@ -1368,7 +1371,7 @@ static int kvm_max_vcpus(KVMState *s) > return (ret) ? ret : kvm_recommended_vcpus(s); > } > > -int kvm_init(MachineClass *mc) > +static int kvm_init(MachineClass *mc) > { > static const char upgrade_note[] = > "Please upgrade to at least kernel 2.6.29 or recent kvm-kmod\n" > @@ -2213,3 +2216,24 @@ int kvm_get_one_reg(CPUState *cs, uint64_t id, void *target) > } > return r; > } > + > +static void kvm_accel_class_init(ObjectClass *oc, void *data) > +{ > + AccelClass *ac = ACCEL_CLASS(oc); > + ac->name = "KVM"; > + ac->init = kvm_init; > + ac->allowed = &kvm_allowed; > +} > + > +static const TypeInfo kvm_accel_type = { > + .name = TYPE_KVM_ACCEL, > + .parent = TYPE_ACCEL, > + .class_init = kvm_accel_class_init, > +}; > + > +static void kvm_type_init(void) > +{ > + type_register_static(&kvm_accel_type); > +} > + > +type_init(kvm_type_init); > diff --git a/kvm-stub.c b/kvm-stub.c > index 8e7737c..43fc0dd 100644 > --- a/kvm-stub.c > +++ b/kvm-stub.c > @@ -35,11 +35,6 @@ int kvm_init_vcpu(CPUState *cpu) > return -ENOSYS; > } > > -int kvm_init(MachineClass *mc) > -{ > - return -ENOSYS; > -} > - > void kvm_flush_coalesced_mmio_buffer(void) > { > } > Reviewed-by: Paolo Bonzini