* [PULL v2 00/62] Misc patches for 2019-12-16 @ 2019-12-17 17:57 Paolo Bonzini 2019-12-17 17:57 ` [PULL 11/62] migration-test: Use a struct for test_migrate_start parameters Paolo Bonzini ` (2 more replies) 0 siblings, 3 replies; 7+ messages in thread From: Paolo Bonzini @ 2019-12-17 17:57 UTC (permalink / raw) To: qemu-devel The following changes since commit 084a398bf8aa7634738e6c6c0103236ee1b3b72f: Merge remote-tracking branch 'remotes/stefanha/tags/block-pull-request' into staging (2019-12-13 18:14:07 +0000) are available in the git repository at: git://github.com/bonzini/qemu.git tags/for-upstream for you to fetch changes up to 74c14076700436f9d340652042c81f46eaf0cf9f: colo: fix return without releasing RCU (2019-12-17 14:03:44 +0100) ---------------------------------------------------------------- * More uses of RCU_READ_LOCK_GUARD (Dave, myself) * QOM doc improvments (Greg) * Cleanups from the Meson conversion (Marc-André) * Support for multiple -accel options (myself) * Many x86 machine cleanup (Philippe, myself) * tests/migration-test cleanup (Juan) ---------------------------------------------------------------- Dr. David Alan Gilbert (3): kvm: Reallocate dirty_bmap when we change a slot hyperv: Use auto rcu_read macros qsp: Use WITH_RCU_READ_LOCK_GUARD Greg Kurz (1): object: Improve documentation of interfaces Juan Quintela (10): migration-test: Create cmd_soure and cmd_target migration-test: Move hide_stderr to common commandline migration-test: Move -machine to common commandline migration-test: Move memory size to common commandline migration-test: Move shmem handling to common commandline migration-test: Move -name handling to common commandline migration-test: Move -serial handling to common commandline migration-test: Move -incomming handling to common commandline migration-test: Rename cmd_src/dst to arch_source/arch_target migration-test: Use a struct for test_migrate_start parameters Marc-André Lureau (7): build-sys: build vhost-user-gpu only if CONFIG_TOOLS migration: fix maybe-uninitialized warning monitor: fix maybe-uninitialized vhost-user-scsi: fix printf format warning os-posix: simplify os_find_datadir tests: skip block layer tests if !CONFIG_TOOLS configure: simplify vhost condition with Kconfig Paolo Bonzini (35): memory: do not look at current_machine->accel vl: move icount configuration earlier tcg: move qemu_tcg_configure to accel/tcg/tcg-all.c vl: extract accelerator option processing to a separate function vl: merge -accel processing into configure_accelerators accel: compile accel/accel.c just once vl: introduce object_parse_property_opt vl: configure accelerators from -accel options vl: warn for unavailable accelerators, clarify messages qom: introduce object_register_sugar_prop qom: add object_new_with_class accel: pass object to accel_init_machine tcg: convert "-accel threads" to a QOM property tcg: add "-accel tcg,tb-size" and deprecate "-tb-size" xen: convert "-machine igd-passthru" to an accelerator property kvm: convert "-machine kvm_shadow_mem" to an accelerator property kvm: introduce kvm_kernel_irqchip_* functions kvm: convert "-machine kernel_irqchip" to an accelerator property Makefile: remove unused variables build-sys: do not include Windows SLIRP dependencies in $LIBS libvixl: remove per-target compiler flags crypto: move common bits for all emulators to libqemuutil stubs: replace stubs with lnot if applicable configure: set $PYTHON to a full path i386: conditionally compile more files fw_cfg: allow building without other devices hw: replace hw/i386/pc.h with a header just for the i8259 pci-stub: add more MSI functions x86: move SMM property to X86MachineState x86: move more x86-generic functions out of PC files acpi: move PC stubs out of stubs/ pc: stubify x86 iommu hw/isa/isa-bus: cleanup irq functions memory: use RCU_READ_LOCK_GUARD colo: fix return without releasing RCU Philippe Mathieu-Daudé (6): hw/i386/pc: Convert DPRINTF() to trace events hw/i386: De-duplicate gsi_handler() to remove kvm_pc_gsi_handler() hw/i386: Simplify ioapic_init_gsi() hw/i386/pc: Use TYPE_PORT92 instead of hardcoded string hw/i386/pc: Inline port92_init() hw/i386/pc: Extract the port92 device Kconfig.host | 5 + Makefile | 14 +- Makefile.objs | 6 +- Makefile.target | 2 - accel/Makefile.objs | 2 +- accel/accel.c | 73 +----- accel/kvm/kvm-all.c | 161 ++++++++++-- accel/tcg/tcg-all.c | 149 ++++++++++- configure | 10 +- contrib/vhost-user-scsi/vhost-user-scsi.c | 2 +- cpus.c | 72 ----- crypto/Makefile.objs | 13 +- disas/libvixl/Makefile.objs | 11 +- hw/acpi/Makefile.objs | 3 +- .../pc_madt_cpu_entry.c => hw/acpi/acpi-x86-stub.c | 0 hw/alpha/alpha_sys.h | 3 +- hw/alpha/dp264.c | 1 + hw/core/machine.c | 141 ---------- hw/hppa/hppa_sys.h | 3 +- hw/hppa/machine.c | 1 + hw/hyperv/hyperv.c | 22 +- hw/i386/Kconfig | 6 + hw/i386/Makefile.objs | 10 +- hw/i386/acpi-build.c | 1 + hw/i386/fw_cfg.c | 8 +- hw/i386/fw_cfg.h | 2 + hw/i386/kvm/Makefile.objs | 6 +- hw/i386/kvm/i8259.c | 1 + hw/i386/kvm/ioapic.c | 14 +- hw/i386/microvm.c | 4 +- hw/i386/pc.c | 291 +-------------------- hw/i386/pc_piix.c | 6 +- hw/i386/pc_q35.c | 2 +- hw/i386/port92.c | 126 +++++++++ hw/i386/trace-events | 8 + hw/i386/x86-iommu-stub.c | 34 +++ hw/i386/x86.c | 154 ++++++++++- hw/input/pckbd.c | 1 - hw/intc/Kconfig | 2 + hw/intc/apic.c | 2 +- hw/intc/i8259.c | 2 +- hw/intc/i8259_common.c | 2 +- hw/intc/ioapic.c | 3 +- hw/isa/i82378.c | 2 +- hw/isa/isa-bus.c | 11 +- hw/isa/lpc_ich9.c | 1 - hw/isa/piix4.c | 2 +- hw/mips/gt64xxx_pci.c | 2 +- hw/mips/mips_fulong2e.c | 2 +- hw/mips/mips_jazz.c | 2 +- hw/mips/mips_r4k.c | 2 +- hw/pci-host/bonito.c | 1 - hw/pci-host/prep.c | 2 +- hw/pci/pci-stub.c | 27 ++ hw/ppc/e500.c | 5 +- hw/ppc/spapr_irq.c | 16 +- hw/virtio/Kconfig | 3 + hw/virtio/Makefile.objs | 4 +- hw/xen/xen-common.c | 18 ++ hw/xen/xen_pt.c | 2 + include/exec/memory.h | 3 +- include/hw/boards.h | 7 - include/hw/i386/pc.h | 32 +-- include/hw/i386/x86.h | 23 ++ include/hw/intc/i8259.h | 12 + include/hw/isa/i8259_internal.h | 2 +- include/hw/isa/isa.h | 8 +- include/qom/object.h | 23 +- include/sysemu/accel.h | 4 +- include/sysemu/cpus.h | 2 - include/sysemu/kvm.h | 8 +- memory.c | 5 +- migration/ram.c | 53 ++-- monitor/misc.c | 3 +- os-posix.c | 41 +-- qemu-deprecated.texi | 6 + qemu-options.hx | 30 ++- qom/object.c | 28 +- stubs/Makefile.objs | 1 - target/arm/kvm.c | 8 +- target/i386/cpu.c | 8 +- target/i386/kvm.c | 11 +- target/i386/machine.c | 2 +- target/i386/monitor.c | 1 - target/mips/kvm.c | 2 +- target/ppc/kvm.c | 2 +- target/s390x/cpu_models.c | 4 +- target/s390x/kvm.c | 2 +- tests/Makefile.include | 4 +- tests/arm-cpu-features.c | 4 +- tests/bios-tables-test.c | 16 +- tests/boot-serial-test.c | 4 +- tests/cdrom-test.c | 2 +- tests/libqtest.c | 4 +- tests/migration-test.c | 264 ++++++++++--------- tests/pflash-cfi02-test.c | 4 +- tests/pnv-xscom-test.c | 4 +- tests/prom-env-test.c | 2 +- tests/pxe-test.c | 2 +- tests/vmgenid-test.c | 2 +- util/Makefile.objs | 3 +- util/qsp.c | 22 +- vl.c | 225 +++++++++++----- 103 files changed, 1298 insertions(+), 1076 deletions(-) rename stubs/pc_madt_cpu_entry.c => hw/acpi/acpi-x86-stub.c (100%) create mode 100644 hw/i386/port92.c create mode 100644 hw/i386/x86-iommu-stub.c create mode 100644 include/hw/intc/i8259.h -- 1.8.3.1 ^ permalink raw reply [flat|nested] 7+ messages in thread
* [PULL 11/62] migration-test: Use a struct for test_migrate_start parameters 2019-12-17 17:57 [PULL v2 00/62] Misc patches for 2019-12-16 Paolo Bonzini @ 2019-12-17 17:57 ` Paolo Bonzini 2019-12-17 17:57 ` [PULL 21/62] qom: introduce object_register_sugar_prop Paolo Bonzini 2019-12-17 18:13 ` [PULL v2 00/62] Misc patches for 2019-12-16 Peter Maydell 2 siblings, 0 replies; 7+ messages in thread From: Paolo Bonzini @ 2019-12-17 17:57 UTC (permalink / raw) To: qemu-devel; +Cc: Juan Quintela From: Juan Quintela <quintela@redhat.com> It has two bools and two strings, it is very difficult to remember which does what. And it makes very difficult to add new parameters as we need to modify all the callers. Signed-off-by: Juan Quintela <quintela@redhat.com> Tested-by: Cornelia Huck <cohuck@redhat.com> #s390x Tested-by: Laurent Vivier <lvivier@redhat.com> --- tests/migration-test.c | 118 ++++++++++++++++++++++++++++++++----------------- 1 file changed, 78 insertions(+), 40 deletions(-) diff --git a/tests/migration-test.c b/tests/migration-test.c index 6c7c416..97dd1dc 100644 --- a/tests/migration-test.c +++ b/tests/migration-test.c @@ -544,10 +544,31 @@ static void migrate_postcopy_start(QTestState *from, QTestState *to) qtest_qmp_eventwait(to, "RESUME"); } +typedef struct { + bool hide_stderr; + bool use_shmem; + char *opts_source; + char *opts_target; +} MigrateStart; + +static MigrateStart *migrate_start_new(void) +{ + MigrateStart *args = g_new0(MigrateStart, 1); + + args->opts_source = g_strdup(""); + args->opts_target = g_strdup(""); + return args; +} + +static void migrate_start_destroy(MigrateStart *args) +{ + g_free(args->opts_source); + g_free(args->opts_target); + g_free(args); +} + static int test_migrate_start(QTestState **from, QTestState **to, - const char *uri, bool hide_stderr, - bool use_shmem, const char *opts_src, - const char *opts_dst) + const char *uri, MigrateStart *args) { gchar *arch_source, *arch_target; gchar *cmd_source, *cmd_target; @@ -560,10 +581,7 @@ static int test_migrate_start(QTestState **from, QTestState **to, const char *machine_args; const char *memory_size; - opts_src = opts_src ? opts_src : ""; - opts_dst = opts_dst ? opts_dst : ""; - - if (use_shmem) { + if (args->use_shmem) { if (!g_file_test("/dev/shm", G_FILE_TEST_IS_DIR)) { g_test_skip("/dev/shm is not supported"); return -1; @@ -623,13 +641,13 @@ static int test_migrate_start(QTestState **from, QTestState **to, g_free(bootpath); - if (hide_stderr) { + if (args->hide_stderr) { ignore_stderr = "2>/dev/null"; } else { ignore_stderr = ""; } - if (use_shmem) { + if (args->use_shmem) { shmem_path = g_strdup_printf("/dev/shm/qemu-%d", getpid()); shmem_opts = g_strdup_printf( "-object memory-backend-file,id=mem0,size=%s" @@ -647,7 +665,7 @@ static int test_migrate_start(QTestState **from, QTestState **to, "%s %s %s %s", machine_type, machine_args, memory_size, tmpfs, - arch_source, shmem_opts, opts_src, + arch_source, shmem_opts, args->opts_source, ignore_stderr); g_free(arch_source); *from = qtest_init(cmd_source); @@ -661,8 +679,8 @@ static int test_migrate_start(QTestState **from, QTestState **to, "%s %s %s %s", machine_type, machine_args, memory_size, tmpfs, uri, - arch_target, shmem_opts, opts_dst, - ignore_stderr); + arch_target, shmem_opts, + args->opts_target, ignore_stderr); g_free(arch_target); *to = qtest_init(cmd_target); g_free(cmd_target); @@ -672,11 +690,12 @@ static int test_migrate_start(QTestState **from, QTestState **to, * Remove shmem file immediately to avoid memory leak in test failed case. * It's valid becase QEMU has already opened this file */ - if (use_shmem) { + if (args->use_shmem) { unlink(shmem_path); g_free(shmem_path); } + migrate_start_destroy(args); return 0; } @@ -762,13 +781,13 @@ static void test_deprecated(void) } static int migrate_postcopy_prepare(QTestState **from_ptr, - QTestState **to_ptr, - bool hide_error) + QTestState **to_ptr, + MigrateStart *args) { char *uri = g_strdup_printf("unix:%s/migsocket", tmpfs); QTestState *from, *to; - if (test_migrate_start(&from, &to, uri, hide_error, false, NULL, NULL)) { + if (test_migrate_start(&from, &to, uri, args)) { return -1; } @@ -813,9 +832,10 @@ static void migrate_postcopy_complete(QTestState *from, QTestState *to) static void test_postcopy(void) { + MigrateStart *args = migrate_start_new(); QTestState *from, *to; - if (migrate_postcopy_prepare(&from, &to, false)) { + if (migrate_postcopy_prepare(&from, &to, args)) { return; } migrate_postcopy_start(from, to); @@ -824,10 +844,13 @@ static void test_postcopy(void) static void test_postcopy_recovery(void) { + MigrateStart *args = migrate_start_new(); QTestState *from, *to; char *uri; - if (migrate_postcopy_prepare(&from, &to, true)) { + args->hide_stderr = true; + + if (migrate_postcopy_prepare(&from, &to, args)) { return; } @@ -910,9 +933,12 @@ static void wait_for_migration_fail(QTestState *from, bool allow_active) static void test_baddest(void) { + MigrateStart *args = migrate_start_new(); QTestState *from, *to; - if (test_migrate_start(&from, &to, "tcp:0:0", true, false, NULL, NULL)) { + args->hide_stderr = true; + + if (test_migrate_start(&from, &to, "tcp:0:0", args)) { return; } migrate(from, "tcp:0:0", "{}"); @@ -923,9 +949,10 @@ static void test_baddest(void) static void test_precopy_unix(void) { char *uri = g_strdup_printf("unix:%s/migsocket", tmpfs); + MigrateStart *args = migrate_start_new(); QTestState *from, *to; - if (test_migrate_start(&from, &to, uri, false, false, NULL, NULL)) { + if (test_migrate_start(&from, &to, uri, args)) { return; } @@ -1001,9 +1028,10 @@ static void test_ignore_shared(void) static void test_xbzrle(const char *uri) { + MigrateStart *args = migrate_start_new(); QTestState *from, *to; - if (test_migrate_start(&from, &to, uri, false, false, NULL, NULL)) { + if (test_migrate_start(&from, &to, uri, args)) { return; } @@ -1052,11 +1080,11 @@ static void test_xbzrle_unix(void) static void test_precopy_tcp(void) { + MigrateStart *args = migrate_start_new(); char *uri; QTestState *from, *to; - if (test_migrate_start(&from, &to, "tcp:127.0.0.1:0", false, false, - NULL, NULL)) { + if (test_migrate_start(&from, &to, "tcp:127.0.0.1:0", args)) { return; } @@ -1096,13 +1124,14 @@ static void test_precopy_tcp(void) static void test_migrate_fd_proto(void) { + MigrateStart *args = migrate_start_new(); QTestState *from, *to; int ret; int pair[2]; QDict *rsp; const char *error_desc; - if (test_migrate_start(&from, &to, "defer", false, false, NULL, NULL)) { + if (test_migrate_start(&from, &to, "defer", args)) { return; } @@ -1178,15 +1207,12 @@ static void test_migrate_fd_proto(void) test_migrate_end(from, to, true); } -static void do_test_validate_uuid(const char *uuid_arg_src, - const char *uuid_arg_dst, - bool should_fail, bool hide_stderr) +static void do_test_validate_uuid(MigrateStart *args, bool should_fail) { char *uri = g_strdup_printf("unix:%s/migsocket", tmpfs); QTestState *from, *to; - if (test_migrate_start(&from, &to, uri, hide_stderr, false, - uuid_arg_src, uuid_arg_dst)) { + if (test_migrate_start(&from, &to, uri, args)) { return; } @@ -1216,33 +1242,45 @@ static void do_test_validate_uuid(const char *uuid_arg_src, static void test_validate_uuid(void) { - do_test_validate_uuid("-uuid 11111111-1111-1111-1111-111111111111", - "-uuid 11111111-1111-1111-1111-111111111111", - false, false); + MigrateStart *args = migrate_start_new(); + + args->opts_source = g_strdup("-uuid 11111111-1111-1111-1111-111111111111"); + args->opts_target = g_strdup("-uuid 11111111-1111-1111-1111-111111111111"); + do_test_validate_uuid(args, false); } static void test_validate_uuid_error(void) { - do_test_validate_uuid("-uuid 11111111-1111-1111-1111-111111111111", - "-uuid 22222222-2222-2222-2222-222222222222", - true, true); + MigrateStart *args = migrate_start_new(); + + args->opts_source = g_strdup("-uuid 11111111-1111-1111-1111-111111111111"); + args->opts_target = g_strdup("-uuid 22222222-2222-2222-2222-222222222222"); + args->hide_stderr = true; + do_test_validate_uuid(args, true); } static void test_validate_uuid_src_not_set(void) { - do_test_validate_uuid(NULL, "-uuid 11111111-1111-1111-1111-111111111111", - false, true); + MigrateStart *args = migrate_start_new(); + + args->opts_target = g_strdup("-uuid 22222222-2222-2222-2222-222222222222"); + args->hide_stderr = true; + do_test_validate_uuid(args, false); } static void test_validate_uuid_dst_not_set(void) { - do_test_validate_uuid("-uuid 11111111-1111-1111-1111-111111111111", NULL, - false, true); + MigrateStart *args = migrate_start_new(); + + args->opts_source = g_strdup("-uuid 11111111-1111-1111-1111-111111111111"); + args->hide_stderr = true; + do_test_validate_uuid(args, false); } static void test_migrate_auto_converge(void) { char *uri = g_strdup_printf("unix:%s/migsocket", tmpfs); + MigrateStart *args = migrate_start_new(); QTestState *from, *to; int64_t remaining, percentage; @@ -1261,7 +1299,7 @@ static void test_migrate_auto_converge(void) */ const int64_t expected_threshold = max_bandwidth * downtime_limit / 1000; - if (test_migrate_start(&from, &to, uri, false, false, NULL, NULL)) { + if (test_migrate_start(&from, &to, uri, args)) { return; } -- 1.8.3.1 ^ permalink raw reply related [flat|nested] 7+ messages in thread
* [PULL 21/62] qom: introduce object_register_sugar_prop 2019-12-17 17:57 [PULL v2 00/62] Misc patches for 2019-12-16 Paolo Bonzini 2019-12-17 17:57 ` [PULL 11/62] migration-test: Use a struct for test_migrate_start parameters Paolo Bonzini @ 2019-12-17 17:57 ` Paolo Bonzini 2019-12-17 18:13 ` [PULL v2 00/62] Misc patches for 2019-12-16 Peter Maydell 2 siblings, 0 replies; 7+ messages in thread From: Paolo Bonzini @ 2019-12-17 17:57 UTC (permalink / raw) To: qemu-devel Similar to the existing "-rtc driftfix" option, we will convert some legacy "-machine" command line options to global properties on accelerators. Because accelerators are not devices, we cannot use qdev_prop_register_global. Instead, provide a slot in the generic object_compat_props arrays for command line syntactic sugar. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> --- include/qom/object.h | 1 + qom/object.c | 23 +++++++++++++++++++++-- vl.c | 10 +++------- 3 files changed, 25 insertions(+), 9 deletions(-) diff --git a/include/qom/object.h b/include/qom/object.h index 128d00c..230b18f 100644 --- a/include/qom/object.h +++ b/include/qom/object.h @@ -679,6 +679,7 @@ void object_apply_global_props(Object *obj, const GPtrArray *props, Error **errp); void object_set_machine_compat_props(GPtrArray *compat_props); void object_set_accelerator_compat_props(GPtrArray *compat_props); +void object_register_sugar_prop(const char *driver, const char *prop, const char *value); void object_apply_compat_props(Object *obj); /** diff --git a/qom/object.c b/qom/object.c index d51b57f..e7b72f7 100644 --- a/qom/object.c +++ b/qom/object.c @@ -414,10 +414,29 @@ void object_apply_global_props(Object *obj, const GPtrArray *props, Error **errp * Global property defaults * Slot 0: accelerator's global property defaults * Slot 1: machine's global property defaults + * Slot 2: global properties from legacy command line option * Each is a GPtrArray of of GlobalProperty. * Applied in order, later entries override earlier ones. */ -static GPtrArray *object_compat_props[2]; +static GPtrArray *object_compat_props[3]; + +/* + * Retrieve @GPtrArray for global property defined with options + * other than "-global". These are generally used for syntactic + * sugar and legacy command line options. + */ +void object_register_sugar_prop(const char *driver, const char *prop, const char *value) +{ + GlobalProperty *g; + if (!object_compat_props[2]) { + object_compat_props[2] = g_ptr_array_new(); + } + g = g_new0(GlobalProperty, 1); + g->driver = g_strdup(driver); + g->property = g_strdup(prop); + g->value = g_strdup(value); + g_ptr_array_add(object_compat_props[2], g); +} /* * Set machine's global property defaults to @compat_props. @@ -445,7 +464,7 @@ void object_apply_compat_props(Object *obj) for (i = 0; i < ARRAY_SIZE(object_compat_props); i++) { object_apply_global_props(obj, object_compat_props[i], - &error_abort); + i == 2 ? &error_fatal : &error_abort); } } diff --git a/vl.c b/vl.c index 46e4ec3..be3f51c 100644 --- a/vl.c +++ b/vl.c @@ -897,13 +897,9 @@ static void configure_rtc(QemuOpts *opts) value = qemu_opt_get(opts, "driftfix"); if (value) { if (!strcmp(value, "slew")) { - static GlobalProperty slew_lost_ticks = { - .driver = "mc146818rtc", - .property = "lost_tick_policy", - .value = "slew", - }; - - qdev_prop_register_global(&slew_lost_ticks); + object_register_sugar_prop("mc146818rtc", + "lost_tick_policy", + "slew"); } else if (!strcmp(value, "none")) { /* discard is default */ } else { -- 1.8.3.1 ^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [PULL v2 00/62] Misc patches for 2019-12-16 2019-12-17 17:57 [PULL v2 00/62] Misc patches for 2019-12-16 Paolo Bonzini 2019-12-17 17:57 ` [PULL 11/62] migration-test: Use a struct for test_migrate_start parameters Paolo Bonzini 2019-12-17 17:57 ` [PULL 21/62] qom: introduce object_register_sugar_prop Paolo Bonzini @ 2019-12-17 18:13 ` Peter Maydell 2019-12-17 18:21 ` Paolo Bonzini 2 siblings, 1 reply; 7+ messages in thread From: Peter Maydell @ 2019-12-17 18:13 UTC (permalink / raw) To: Paolo Bonzini; +Cc: QEMU Developers On Tue, 17 Dec 2019 at 17:59, Paolo Bonzini <pbonzini@redhat.com> wrote: > > The following changes since commit 084a398bf8aa7634738e6c6c0103236ee1b3b72f: > > Merge remote-tracking branch 'remotes/stefanha/tags/block-pull-request' into staging (2019-12-13 18:14:07 +0000) > > are available in the git repository at: > > > git://github.com/bonzini/qemu.git tags/for-upstream > > for you to fetch changes up to 74c14076700436f9d340652042c81f46eaf0cf9f: > > colo: fix return without releasing RCU (2019-12-17 14:03:44 +0100) > > ---------------------------------------------------------------- > * More uses of RCU_READ_LOCK_GUARD (Dave, myself) > * QOM doc improvments (Greg) > * Cleanups from the Meson conversion (Marc-André) > * Support for multiple -accel options (myself) > * Many x86 machine cleanup (Philippe, myself) > * tests/migration-test cleanup (Juan) > > ---------------------------------------------------------------- Conflict: diff --cc hw/ppc/spapr_irq.c index 07e08d6544,15c3dd4812..0000000000 --- a/hw/ppc/spapr_irq.c +++ b/hw/ppc/spapr_irq.c @@@ -70,17 -70,15 +70,22 @@@ void spapr_irq_msi_free(SpaprMachineSta bitmap_clear(spapr->irq_map, irq - SPAPR_IRQ_MSI, num); } -int spapr_irq_init_kvm(int (*fn)(SpaprInterruptController *, Error **), +int spapr_irq_init_kvm(SpaprInterruptControllerInitKvm fn, SpaprInterruptController *intc, + uint32_t nr_servers, Error **errp) { - MachineState *machine = MACHINE(qdev_get_machine()); Error *local_err = NULL; ++<<<<<<< HEAD + if (kvm_enabled() && machine_kernel_irqchip_allowed(machine)) { + if (fn(intc, nr_servers, &local_err) < 0) { + if (machine_kernel_irqchip_required(machine)) { ++======= + if (kvm_enabled() && kvm_kernel_irqchip_allowed()) { + if (fn(intc, &local_err) < 0) { + if (kvm_kernel_irqchip_required()) { ++>>>>>>> remotes/bonzini/tags/for-upstream error_prepend(&local_err, "kernel_irqchip requested but unavailable: "); error_propagate(errp, local_err); I could probably figure out the resolution but I'm about 5 minutes from having to leave the office; sorry. -- PMM ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PULL v2 00/62] Misc patches for 2019-12-16 2019-12-17 18:13 ` [PULL v2 00/62] Misc patches for 2019-12-16 Peter Maydell @ 2019-12-17 18:21 ` Paolo Bonzini 2019-12-17 18:21 ` Peter Maydell 0 siblings, 1 reply; 7+ messages in thread From: Paolo Bonzini @ 2019-12-17 18:21 UTC (permalink / raw) To: Peter Maydell; +Cc: QEMU Developers On 17/12/19 19:13, Peter Maydell wrote: > On Tue, 17 Dec 2019 at 17:59, Paolo Bonzini <pbonzini@redhat.com> wrote: >> >> The following changes since commit 084a398bf8aa7634738e6c6c0103236ee1b3b72f: >> >> Merge remote-tracking branch 'remotes/stefanha/tags/block-pull-request' into staging (2019-12-13 18:14:07 +0000) >> >> are available in the git repository at: >> >> >> git://github.com/bonzini/qemu.git tags/for-upstream >> >> for you to fetch changes up to 74c14076700436f9d340652042c81f46eaf0cf9f: >> >> colo: fix return without releasing RCU (2019-12-17 14:03:44 +0100) >> >> ---------------------------------------------------------------- >> * More uses of RCU_READ_LOCK_GUARD (Dave, myself) >> * QOM doc improvments (Greg) >> * Cleanups from the Meson conversion (Marc-André) >> * Support for multiple -accel options (myself) >> * Many x86 machine cleanup (Philippe, myself) >> * tests/migration-test cleanup (Juan) >> >> ---------------------------------------------------------------- > > Conflict: > > diff --cc hw/ppc/spapr_irq.c > index 07e08d6544,15c3dd4812..0000000000 > --- a/hw/ppc/spapr_irq.c > +++ b/hw/ppc/spapr_irq.c > @@@ -70,17 -70,15 +70,22 @@@ void spapr_irq_msi_free(SpaprMachineSta > bitmap_clear(spapr->irq_map, irq - SPAPR_IRQ_MSI, num); > } > > -int spapr_irq_init_kvm(int (*fn)(SpaprInterruptController *, Error **), > +int spapr_irq_init_kvm(SpaprInterruptControllerInitKvm fn, > SpaprInterruptController *intc, > + uint32_t nr_servers, > Error **errp) > { > - MachineState *machine = MACHINE(qdev_get_machine()); > Error *local_err = NULL; > > ++<<<<<<< HEAD > + if (kvm_enabled() && machine_kernel_irqchip_allowed(machine)) { > + if (fn(intc, nr_servers, &local_err) < 0) { > + if (machine_kernel_irqchip_required(machine)) { > ++======= > + if (kvm_enabled() && kvm_kernel_irqchip_allowed()) { > + if (fn(intc, &local_err) < 0) { > + if (kvm_kernel_irqchip_required()) { > ++>>>>>>> remotes/bonzini/tags/for-upstream > error_prepend(&local_err, > "kernel_irqchip requested but unavailable: "); > error_propagate(errp, local_err); > > > I could probably figure out the resolution but I'm about 5 minutes > from having to leave the office; sorry. I pushed a merge commit to the same place. Paolo ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PULL v2 00/62] Misc patches for 2019-12-16 2019-12-17 18:21 ` Paolo Bonzini @ 2019-12-17 18:21 ` Peter Maydell 2019-12-17 18:33 ` Paolo Bonzini 0 siblings, 1 reply; 7+ messages in thread From: Peter Maydell @ 2019-12-17 18:21 UTC (permalink / raw) To: Paolo Bonzini; +Cc: QEMU Developers On Tue, 17 Dec 2019 at 18:21, Paolo Bonzini <pbonzini@redhat.com> wrote: > > On 17/12/19 19:13, Peter Maydell wrote: > > On Tue, 17 Dec 2019 at 17:59, Paolo Bonzini <pbonzini@redhat.com> wrote: > >> > >> The following changes since commit 084a398bf8aa7634738e6c6c0103236ee1b3b72f: > >> > >> Merge remote-tracking branch 'remotes/stefanha/tags/block-pull-request' into staging (2019-12-13 18:14:07 +0000) > >> > >> are available in the git repository at: > >> > >> > >> git://github.com/bonzini/qemu.git tags/for-upstream > >> > >> for you to fetch changes up to 74c14076700436f9d340652042c81f46eaf0cf9f: > >> > >> colo: fix return without releasing RCU (2019-12-17 14:03:44 +0100) > >> > >> ---------------------------------------------------------------- > >> * More uses of RCU_READ_LOCK_GUARD (Dave, myself) > >> * QOM doc improvments (Greg) > >> * Cleanups from the Meson conversion (Marc-André) > >> * Support for multiple -accel options (myself) > >> * Many x86 machine cleanup (Philippe, myself) > >> * tests/migration-test cleanup (Juan) > > I could probably figure out the resolution but I'm about 5 minutes > > from having to leave the office; sorry. > > I pushed a merge commit to the same place. A what? I can't merge a merge commit. Just fix the series and resend, please. -- PMM ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PULL v2 00/62] Misc patches for 2019-12-16 2019-12-17 18:21 ` Peter Maydell @ 2019-12-17 18:33 ` Paolo Bonzini 0 siblings, 0 replies; 7+ messages in thread From: Paolo Bonzini @ 2019-12-17 18:33 UTC (permalink / raw) To: Peter Maydell; +Cc: QEMU Developers On 17/12/19 19:21, Peter Maydell wrote: > On Tue, 17 Dec 2019 at 18:21, Paolo Bonzini <pbonzini@redhat.com> wrote: >> >> On 17/12/19 19:13, Peter Maydell wrote: >>> On Tue, 17 Dec 2019 at 17:59, Paolo Bonzini <pbonzini@redhat.com> wrote: >>>> >>>> The following changes since commit 084a398bf8aa7634738e6c6c0103236ee1b3b72f: >>>> >>>> Merge remote-tracking branch 'remotes/stefanha/tags/block-pull-request' into staging (2019-12-13 18:14:07 +0000) >>>> >>>> are available in the git repository at: >>>> >>>> >>>> git://github.com/bonzini/qemu.git tags/for-upstream >>>> >>>> for you to fetch changes up to 74c14076700436f9d340652042c81f46eaf0cf9f: >>>> >>>> colo: fix return without releasing RCU (2019-12-17 14:03:44 +0100) >>>> >>>> ---------------------------------------------------------------- >>>> * More uses of RCU_READ_LOCK_GUARD (Dave, myself) >>>> * QOM doc improvments (Greg) >>>> * Cleanups from the Meson conversion (Marc-André) >>>> * Support for multiple -accel options (myself) >>>> * Many x86 machine cleanup (Philippe, myself) >>>> * tests/migration-test cleanup (Juan) > >>> I could probably figure out the resolution but I'm about 5 minutes >>> from having to leave the office; sorry. >> >> I pushed a merge commit to the same place. > > A what? I can't merge a merge commit. Just fix the series > and resend, please. You have done so in the past, I'll rebase and send v3 even though this is invalidating the testing that was done on individual patches. Paolo ^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2019-12-17 18:34 UTC | newest] Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2019-12-17 17:57 [PULL v2 00/62] Misc patches for 2019-12-16 Paolo Bonzini 2019-12-17 17:57 ` [PULL 11/62] migration-test: Use a struct for test_migrate_start parameters Paolo Bonzini 2019-12-17 17:57 ` [PULL 21/62] qom: introduce object_register_sugar_prop Paolo Bonzini 2019-12-17 18:13 ` [PULL v2 00/62] Misc patches for 2019-12-16 Peter Maydell 2019-12-17 18:21 ` Paolo Bonzini 2019-12-17 18:21 ` Peter Maydell 2019-12-17 18:33 ` Paolo Bonzini
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).