qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [Qemu-devel] [PULL v2 00/28] Changes for 2014-10-29
@ 2014-10-09 11:40 Paolo Bonzini
  2014-10-09 11:40 ` [Qemu-devel] [PULL v2 21/28] accel: Pass MachineState object to accel init functions Paolo Bonzini
  2014-10-09 13:11 ` [Qemu-devel] [PULL v2 00/28] Changes for 2014-10-29 Peter Maydell
  0 siblings, 2 replies; 3+ messages in thread
From: Paolo Bonzini @ 2014-10-09 11:40 UTC (permalink / raw)
  To: qemu-devel

The following changes since commit 1831e150606a221898bf46ffaf0453e9952cbbc4:

  Merge remote-tracking branch 'remotes/bonzini/tags/for-upstream' into staging (2014-09-30 16:45:35 +0100)

are available in the git repository at:


  git://github.com/bonzini/qemu.git tags/for-upstream

for you to fetch changes up to c8ee8cb6ed76d49412e5067aa1e3f7ce2d47ce46:

  qemu-char: Fix reconnect socket error reporting (2014-10-09 12:57:31 +0200)

----------------------------------------------------------------
Four changes here.  Polling for reconnection of character devices,
the QOMification of accelerators, a fix for -kernel support on x86, and one
for a recently-introduced virtio-scsi optimization.

----------------------------------------------------------------
Corey Minyard (9):
      qemu-char: Make the filename size for a chardev a #define
      qemu-char: Rework qemu_chr_open_socket() for reconnect
      qemu-char: Move some items into TCPCharDriver
      qemu-char: set socket filename to disconnected when not connected
      qemu-char: Add reconnecting to client sockets
      qemu-char: Print the remote and local addresses for a socket
      qemu-error: Add error_vreport()
      qemu-sockets: Add error to non-blocking connect handler
      qemu-char: Fix reconnect socket error reporting

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

Paolo Bonzini (2):
      linuxboot: compute initrd loading address
      virtio-scsi: fix use-after-free of VirtIOSCSIReq

 Makefile.objs                 |   1 +
 accel.c                       | 157 ++++++++++++++++++
 arch_init.c                   |   5 -
 hw/scsi/virtio-scsi.c         |   9 +-
 include/hw/boards.h           |   3 +-
 include/hw/xen/xen.h          |   1 -
 include/qemu/error-report.h   |   1 +
 include/qemu/sockets.h        |   2 +-
 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 -
 migration-tcp.c               |   4 +-
 migration-unix.c              |   4 +-
 pc-bios/linuxboot.bin         | Bin 1024 -> 1024 bytes
 pc-bios/optionrom/linuxboot.S |  47 +++++-
 pc-bios/optionrom/optionrom.h |  21 ++-
 qapi-schema.json              |  15 +-
 qemu-char.c                   | 359 ++++++++++++++++++++++++++++++++----------
 qemu-options.hx               |  20 ++-
 qtest.c                       |  27 +++-
 util/qemu-error.c             |  23 ++-
 util/qemu-sockets.c           |  20 ++-
 vl.c                          |  83 +---------
 xen-common-stub.c             |   6 -
 xen-common.c                  |  25 ++-
 29 files changed, 712 insertions(+), 235 deletions(-)
 create mode 100644 accel.c
 create mode 100644 include/sysemu/accel.h

^ permalink raw reply	[flat|nested] 3+ messages in thread

* [Qemu-devel] [PULL v2 21/28] accel: Pass MachineState object to accel init functions
  2014-10-09 11:40 [Qemu-devel] [PULL v2 00/28] Changes for 2014-10-29 Paolo Bonzini
@ 2014-10-09 11:40 ` Paolo Bonzini
  2014-10-09 13:11 ` [Qemu-devel] [PULL v2 00/28] Changes for 2014-10-29 Peter Maydell
  1 sibling, 0 replies; 3+ messages in thread
From: Paolo Bonzini @ 2014-10-09 11:40 UTC (permalink / raw)
  To: qemu-devel; +Cc: Eduardo Habkost

From: Eduardo Habkost <ehabkost@redhat.com>

Most of the machine options and machine state information is in the
MachineState object, not on the MachineClass. This will allow init
functions to use the MachineState object directly instead of
qemu_get_machine_opts() or the current_machine global.

Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 accel.c                 | 11 ++++++-----
 include/hw/boards.h     |  2 --
 include/qemu/typedefs.h |  1 +
 include/sysemu/accel.h  |  4 ++--
 kvm-all.c               |  3 ++-
 qtest.c                 |  2 +-
 vl.c                    |  2 +-
 xen-common.c            |  2 +-
 8 files changed, 14 insertions(+), 13 deletions(-)

diff --git a/accel.c b/accel.c
index b151d55..6087ab3 100644
--- a/accel.c
+++ b/accel.c
@@ -24,6 +24,7 @@
  */
 
 #include "sysemu/accel.h"
+#include "hw/boards.h"
 #include "qemu-common.h"
 #include "sysemu/arch_init.h"
 #include "sysemu/sysemu.h"
@@ -35,7 +36,7 @@
 int tcg_tb_size;
 static bool tcg_allowed = true;
 
-static int tcg_init(MachineClass *mc)
+static int tcg_init(MachineState *ms)
 {
     tcg_exec_init(tcg_tb_size * 1024 * 1024);
     return 0;
@@ -57,18 +58,18 @@ static AccelClass *accel_find(const char *opt_name)
     return ac;
 }
 
-static int accel_init_machine(AccelClass *acc, MachineClass *mc)
+static int accel_init_machine(AccelClass *acc, MachineState *ms)
 {
     int ret;
     *(acc->allowed) = true;
-    ret = acc->init_machine(mc);
+    ret = acc->init_machine(ms);
     if (ret < 0) {
         *(acc->allowed) = false;
     }
     return ret;
 }
 
-int configure_accelerator(MachineClass *mc)
+int configure_accelerator(MachineState *ms)
 {
     const char *p;
     char buf[10];
@@ -98,7 +99,7 @@ int configure_accelerator(MachineClass *mc)
                    acc->name);
             continue;
         }
-        ret = accel_init_machine(acc, mc);
+        ret = accel_init_machine(acc, ms);
         if (ret < 0) {
             init_failed = true;
             fprintf(stderr, "failed to initialize %s: %s\n",
diff --git a/include/hw/boards.h b/include/hw/boards.h
index dfb6718..0058c49 100644
--- a/include/hw/boards.h
+++ b/include/hw/boards.h
@@ -9,8 +9,6 @@
 #include "qom/object.h"
 
 
-typedef struct MachineState MachineState;
-
 typedef void QEMUMachineInitFunc(MachineState *ms);
 
 typedef void QEMUMachineResetFunc(void);
diff --git a/include/qemu/typedefs.h b/include/qemu/typedefs.h
index 5f20b0e..04df51b 100644
--- a/include/qemu/typedefs.h
+++ b/include/qemu/typedefs.h
@@ -32,6 +32,7 @@ typedef struct MemoryMappingList MemoryMappingList;
 
 typedef struct QEMUMachine QEMUMachine;
 typedef struct MachineClass MachineClass;
+typedef struct MachineState MachineState;
 typedef struct NICInfo NICInfo;
 typedef struct HCIInfo HCIInfo;
 typedef struct AudioState AudioState;
diff --git a/include/sysemu/accel.h b/include/sysemu/accel.h
index 8812cda..997720f 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_machine)(MachineClass *mc);
+    int (*init_machine)(MachineState *ms);
     bool *allowed;
 } AccelClass;
 
@@ -57,6 +57,6 @@ typedef struct AccelClass {
 
 extern int tcg_tb_size;
 
-int configure_accelerator(MachineClass *mc);
+int configure_accelerator(MachineState *ms);
 
 #endif
diff --git a/kvm-all.c b/kvm-all.c
index ce0e4c7..0a9de92 100644
--- a/kvm-all.c
+++ b/kvm-all.c
@@ -1380,8 +1380,9 @@ static int kvm_max_vcpus(KVMState *s)
     return (ret) ? ret : kvm_recommended_vcpus(s);
 }
 
-static int kvm_init(MachineClass *mc)
+static int kvm_init(MachineState *ms)
 {
+    MachineClass *mc = MACHINE_GET_CLASS(ms);
     static const char upgrade_note[] =
         "Please upgrade to at least kernel 2.6.29 or recent kvm-kmod\n"
         "(see http://sourceforge.net/projects/kvm).\n";
diff --git a/qtest.c b/qtest.c
index 18e26fc..4b85995 100644
--- a/qtest.c
+++ b/qtest.c
@@ -520,7 +520,7 @@ static void configure_qtest_icount(const char *options)
     qemu_opts_del(opts);
 }
 
-static int qtest_init_accel(MachineClass *mc)
+static int qtest_init_accel(MachineState *ms)
 {
     configure_qtest_icount("0");
     return 0;
diff --git a/vl.c b/vl.c
index c3def21..020b7c3 100644
--- a/vl.c
+++ b/vl.c
@@ -4179,7 +4179,7 @@ int main(int argc, char **argv, char **envp)
         exit(1);
     }
 
-    configure_accelerator(machine_class);
+    configure_accelerator(current_machine);
 
     if (qtest_chrdev) {
         Error *local_err = NULL;
diff --git a/xen-common.c b/xen-common.c
index acb738f..56359ca 100644
--- a/xen-common.c
+++ b/xen-common.c
@@ -110,7 +110,7 @@ static void xen_change_state_handler(void *opaque, int running,
     }
 }
 
-static int xen_init(MachineClass *mc)
+static int xen_init(MachineState *ms)
 {
     xen_xc = xen_xc_interface_open(0, 0, 0);
     if (xen_xc == XC_HANDLER_INITIAL_VALUE) {
-- 
1.8.3.1

^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [Qemu-devel] [PULL v2 00/28] Changes for 2014-10-29
  2014-10-09 11:40 [Qemu-devel] [PULL v2 00/28] Changes for 2014-10-29 Paolo Bonzini
  2014-10-09 11:40 ` [Qemu-devel] [PULL v2 21/28] accel: Pass MachineState object to accel init functions Paolo Bonzini
@ 2014-10-09 13:11 ` Peter Maydell
  1 sibling, 0 replies; 3+ messages in thread
From: Peter Maydell @ 2014-10-09 13:11 UTC (permalink / raw)
  To: Paolo Bonzini; +Cc: QEMU Developers

On 9 October 2014 12:40, Paolo Bonzini <pbonzini@redhat.com> wrote:
> The following changes since commit 1831e150606a221898bf46ffaf0453e9952cbbc4:
>
>   Merge remote-tracking branch 'remotes/bonzini/tags/for-upstream' into staging (2014-09-30 16:45:35 +0100)
>
> are available in the git repository at:
>
>
>   git://github.com/bonzini/qemu.git tags/for-upstream
>
> for you to fetch changes up to c8ee8cb6ed76d49412e5067aa1e3f7ce2d47ce46:
>
>   qemu-char: Fix reconnect socket error reporting (2014-10-09 12:57:31 +0200)

This one falls over a bit later on:

In file included from /home/petmay01/linaro/qemu-for-merges/vl.c:64:
/home/petmay01/linaro/qemu-for-merges/include/sysemu/accel.h:32:
error: redefinition of typedef ‘AccelState’
/home/petmay01/linaro/qemu-for-merges/include/qemu/typedefs.h:33:
error: previous declaration of ‘AccelState’ was here

'make -k' says that's the last one, though.

thanks
-- PMM

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2014-10-09 13:19 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-10-09 11:40 [Qemu-devel] [PULL v2 00/28] Changes for 2014-10-29 Paolo Bonzini
2014-10-09 11:40 ` [Qemu-devel] [PULL v2 21/28] accel: Pass MachineState object to accel init functions Paolo Bonzini
2014-10-09 13:11 ` [Qemu-devel] [PULL v2 00/28] Changes for 2014-10-29 Peter Maydell

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).