qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Paolo Bonzini <pbonzini@redhat.com>
To: qemu-devel@nongnu.org
Cc: Eduardo Habkost <ehabkost@redhat.com>
Subject: [Qemu-devel] [PULL 20/28] accel: Rename 'init' method to 'init_machine'
Date: Thu,  9 Oct 2014 12:17:27 +0200	[thread overview]
Message-ID: <1412849855-12661-13-git-send-email-pbonzini@redhat.com> (raw)
In-Reply-To: <1412849438-12274-1-git-send-email-pbonzini@redhat.com>

From: Eduardo Habkost <ehabkost@redhat.com>

Today, all accelerator init functions affect some global state:
* tcg_init() calls tcg_exec_init() and affects globals such as tcg_tcx,
  page size globals, and possibly others;
* kvm_init() changes the kvm_state global, cpu_interrupt_handler, and possibly
  others;
* xen_init() changes the xen_xc global, and registers a change state handler.

With the new accelerator QOM classes, initialization may now be split in two
steps:
* instance_init() will do basic initialization that doesn't affect any global
  state and don't need MachineState or MachineClass data. This will allow
  probing code to safely create multiple accelerator objects on the fly just
  for reporting host/accelerator capabilities, for example.
* accel_init_machine()/init_machine() will save the accelerator object in
  MachineState, and do initialization steps which still affect global state,
  machine state, or that need data from MachineClass or MachineState.

To clarify the difference between those two steps, rename init() to
init_machine().

Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 accel.c                | 8 ++++----
 include/sysemu/accel.h | 2 +-
 kvm-all.c              | 2 +-
 qtest.c                | 2 +-
 xen-common.c           | 2 +-
 5 files changed, 8 insertions(+), 8 deletions(-)

diff --git a/accel.c b/accel.c
index 9241967..b151d55 100644
--- a/accel.c
+++ b/accel.c
@@ -57,11 +57,11 @@ static AccelClass *accel_find(const char *opt_name)
     return ac;
 }
 
-static int accel_init(AccelClass *acc, MachineClass *mc)
+static int accel_init_machine(AccelClass *acc, MachineClass *mc)
 {
     int ret;
     *(acc->allowed) = true;
-    ret = acc->init(mc);
+    ret = acc->init_machine(mc);
     if (ret < 0) {
         *(acc->allowed) = false;
     }
@@ -98,7 +98,7 @@ int configure_accelerator(MachineClass *mc)
                    acc->name);
             continue;
         }
-        ret = accel_init(acc, mc);
+        ret = accel_init_machine(acc, mc);
         if (ret < 0) {
             init_failed = true;
             fprintf(stderr, "failed to initialize %s: %s\n",
@@ -128,7 +128,7 @@ static void tcg_accel_class_init(ObjectClass *oc, void *data)
 {
     AccelClass *ac = ACCEL_CLASS(oc);
     ac->name = "tcg";
-    ac->init = tcg_init;
+    ac->init_machine = tcg_init;
     ac->allowed = &tcg_allowed;
 }
 
diff --git a/include/sysemu/accel.h b/include/sysemu/accel.h
index 120ca0e..8812cda 100644
--- a/include/sysemu/accel.h
+++ b/include/sysemu/accel.h
@@ -39,7 +39,7 @@ typedef struct AccelClass {
     const char *opt_name;
     const char *name;
     int (*available)(void);
-    int (*init)(MachineClass *mc);
+    int (*init_machine)(MachineClass *mc);
     bool *allowed;
 } AccelClass;
 
diff --git a/kvm-all.c b/kvm-all.c
index 18dcd45..ce0e4c7 100644
--- a/kvm-all.c
+++ b/kvm-all.c
@@ -2233,7 +2233,7 @@ static void kvm_accel_class_init(ObjectClass *oc, void *data)
 {
     AccelClass *ac = ACCEL_CLASS(oc);
     ac->name = "KVM";
-    ac->init = kvm_init;
+    ac->init_machine = kvm_init;
     ac->allowed = &kvm_allowed;
 }
 
diff --git a/qtest.c b/qtest.c
index 0af8b74..18e26fc 100644
--- a/qtest.c
+++ b/qtest.c
@@ -564,7 +564,7 @@ static void qtest_accel_class_init(ObjectClass *oc, void *data)
     AccelClass *ac = ACCEL_CLASS(oc);
     ac->name = "QTest";
     ac->available = qtest_available;
-    ac->init = qtest_init_accel;
+    ac->init_machine = qtest_init_accel;
     ac->allowed = &qtest_allowed;
 }
 
diff --git a/xen-common.c b/xen-common.c
index acc64d5..acb738f 100644
--- a/xen-common.c
+++ b/xen-common.c
@@ -126,7 +126,7 @@ static void xen_accel_class_init(ObjectClass *oc, void *data)
 {
     AccelClass *ac = ACCEL_CLASS(oc);
     ac->name = "Xen";
-    ac->init = xen_init;
+    ac->init_machine = xen_init;
     ac->allowed = &xen_allowed;
 }
 
-- 
1.8.3.1

  parent reply	other threads:[~2014-10-09 10:18 UTC|newest]

Thread overview: 36+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-10-09 10:10 [Qemu-devel] [PULL 00/28] Changes for 2014-10-09 Paolo Bonzini
2014-10-09 10:10 ` [Qemu-devel] [PULL 01/28] qemu-char: Make the filename size for a chardev a #define Paolo Bonzini
2014-10-09 10:10 ` [Qemu-devel] [PULL 02/28] qemu-char: Rework qemu_chr_open_socket() for reconnect Paolo Bonzini
2014-10-09 10:10 ` [Qemu-devel] [PULL 03/28] qemu-char: Move some items into TCPCharDriver Paolo Bonzini
2014-10-09 10:10 ` [Qemu-devel] [PULL 04/28] qemu-char: set socket filename to disconnected when not connected Paolo Bonzini
2014-10-09 10:10 ` [Qemu-devel] [PULL 05/28] qemu-char: Add reconnecting to client sockets Paolo Bonzini
2014-10-09 10:10 ` [Qemu-devel] [PULL 06/28] qemu-char: Print the remote and local addresses for a socket Paolo Bonzini
2014-10-09 10:17 ` [Qemu-devel] [PULL 08/28] accel: Move accel code to accel.c Paolo Bonzini
2014-10-09 10:17 ` [Qemu-devel] [PULL 09/28] accel: Create AccelType typedef Paolo Bonzini
2014-10-09 10:17 ` [Qemu-devel] [PULL 10/28] accel: Simplify configure_accelerator() using AccelType *acc variable Paolo Bonzini
2014-10-09 10:17 ` [Qemu-devel] [PULL 11/28] accel: Move accel name lookup to separate function Paolo Bonzini
2014-10-09 10:17 ` [Qemu-devel] [PULL 12/28] accel: Use QOM classes for accel types Paolo Bonzini
2014-10-09 10:17 ` [Qemu-devel] [PULL 13/28] accel: Make AccelClass.available() optional Paolo Bonzini
2014-10-09 10:17 ` [Qemu-devel] [PULL 14/28] accel: Report unknown accelerator as "not found" instead of "does not exist" Paolo Bonzini
2014-10-09 10:17 ` [Qemu-devel] [PULL 15/28] accel: Move KVM accel registration to kvm-all.c Paolo Bonzini
2014-10-09 10:17 ` [Qemu-devel] [PULL 16/28] accel: Move Xen registration code to xen-common.c Paolo Bonzini
2014-10-09 10:17 ` [Qemu-devel] [PULL 17/28] accel: Move qtest accel registration to qtest.c Paolo Bonzini
2014-10-09 10:17 ` [Qemu-devel] [PULL 18/28] accel: Remove tcg_available() function Paolo Bonzini
2014-10-09 10:17 ` [Qemu-devel] [PULL 19/28] accel: Move accel init/allowed code to separate function Paolo Bonzini
2014-10-09 10:17 ` Paolo Bonzini [this message]
2014-10-09 10:17 ` [Qemu-devel] [PULL 21/28] accel: Pass MachineState object to accel init functions Paolo Bonzini
2014-10-09 10:17 ` [Qemu-devel] [PULL 22/28] accel: Create accel object when initializing machine Paolo Bonzini
2014-10-09 10:17 ` [Qemu-devel] [PULL 23/28] kvm: Make KVMState be the TYPE_KVM_ACCEL instance struct Paolo Bonzini
2014-10-10  8:47   ` Cornelia Huck
2014-10-10  9:11     ` Cornelia Huck
2014-10-10 10:09       ` Paolo Bonzini
2014-10-10 10:12         ` Cornelia Huck
2014-10-10  9:19     ` Gonglei
2014-10-09 10:17 ` [Qemu-devel] [PULL 24/28] linuxboot: compute initrd loading address Paolo Bonzini
2014-10-09 10:17 ` [Qemu-devel] [PULL 25/28] virtio-scsi: fix use-after-free of VirtIOSCSIReq Paolo Bonzini
2014-10-09 10:17 ` [Qemu-devel] [PULL 26/28] qemu-error: Add error_vreport() Paolo Bonzini
2014-10-09 10:17 ` [Qemu-devel] [PULL 27/28] qemu-sockets: Add error to non-blocking connect handler Paolo Bonzini
2014-10-09 10:17 ` [Qemu-devel] [PULL 28/28] qemu-char: Fix reconnect socket error reporting Paolo Bonzini
2014-10-09 10:21 ` [Qemu-devel] [PULL 07/28] vl.c: Small coding style fix Paolo Bonzini
2014-10-09 10:55 ` [Qemu-devel] [PULL 00/28] Changes for 2014-10-09 Peter Maydell
2014-10-09 10:59   ` Paolo Bonzini

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1412849855-12661-13-git-send-email-pbonzini@redhat.com \
    --to=pbonzini@redhat.com \
    --cc=ehabkost@redhat.com \
    --cc=qemu-devel@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).