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