qemu/softmmu
Dmitrii Gavrilov e55ec34d3e system/qdev-monitor: move drain_call_rcu call under if (!dev) in qmp_device_add()
Original goal of addition of drain_call_rcu to qmp_device_add was to cover
the failure case of qdev_device_add. It seems call of drain_call_rcu was
misplaced in 7bed89958b what led to waiting for pending RCU callbacks
under happy path too. What led to overall performance degradation of
qmp_device_add.

In this patch call of drain_call_rcu moved under handling of failure of
qdev_device_add.

Signed-off-by: Dmitrii Gavrilov <ds-gavr@yandex-team.ru>
Message-ID: <20231103105602.90475-1-ds-gavr@yandex-team.ru>
Fixes: 7bed89958b ("device_core: use drain_call_rcu in in qmp_device_add", 2020-10-12)
Cc: qemu-stable@nongnu.org
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
(cherry picked from commit 012b170173)
Signed-off-by: Michael Tokarev <mjt@tls.msk.ru>
2024-03-13 23:09:00 +03:00
..
arch_init.c softmmu: Add qemu_init_arch_modules() 2022-03-06 13:15:42 +01:00
balloon.c qapi: Restrict balloon-related commands to machine code 2020-09-29 15:41:35 +02:00
bootdevice.c machine: use QAPI struct for boot configuration 2022-05-12 12:29:43 +02:00
cpu-throttle.c Remove qemu-common.h include from most units 2022-04-06 14:31:55 +02:00
cpu-timers.c Remove qemu-common.h include from most units 2022-04-06 14:31:55 +02:00
cpus.c * Fix and test the VISTR instruction on s390x 2022-10-31 06:19:54 -04:00
datadir.c meson: Prefix each element of firmware path 2022-07-13 16:58:57 +02:00
device_tree.c device-tree: add re-randomization helper function 2022-10-27 11:34:31 +01:00
dirtylimit.c Use g_new() & friends where that makes obvious sense 2022-10-04 00:10:11 +02:00
dma-helpers.c Use g_new() & friends where that makes obvious sense 2022-03-21 15:44:44 +01:00
globals.c ui: Switch "-display sdl" to use the QAPI parser 2022-06-03 08:03:28 +02:00
icount.c icount: don't adjust virtual time backwards after warp 2023-06-29 18:17:49 +03:00
ioport.c softmmu: Add missing trace-events file 2020-09-09 17:15:18 +01:00
main.c ui/cocoa: Run qemu_init in the main thread 2022-09-23 14:36:33 +02:00
memory_mapping.c Use g_new() & friends where that makes obvious sense 2022-03-21 15:44:44 +01:00
memory.c system/memory: use ldn_he_p/stn_he_p 2023-12-20 19:11:10 +03:00
meson.build softmmu/dirtylimit: Implement vCPU dirtyrate calculation periodically 2022-07-20 12:15:08 +01:00
physmem.c memory: Fix wrong end address dump 2022-11-08 15:53:40 -05:00
qdev-monitor.c system/qdev-monitor: move drain_call_rcu call under if (!dev) in qmp_device_add() 2024-03-13 23:09:00 +03:00
qemu-seccomp.c seccomp: Get actual errno value from failed seccomp functions 2022-10-26 13:32:58 +01:00
qtest.c module: add Error arguments to module_load and module_load_qom 2022-11-06 09:48:50 +01:00
rtc.c rtc: Move RTC function prototypes to their own header 2022-01-28 14:29:46 +00:00
runstate-action.c runstate: cleanup reboot and panic actions 2021-01-21 13:00:41 +01:00
runstate.c reset: allow registering handlers that aren't called by snapshot loading 2022-10-27 11:34:31 +01:00
timers-state.h qemu/atomic: Add aligned_{int64,uint64}_t types 2021-07-21 07:45:38 -10:00
tpm.c qapi: More complex uses of QAPI_LIST_APPEND 2021-01-28 08:08:45 +01:00
trace-events softmmu/dirtylimit: Implement virtual CPU throttle 2022-07-20 12:15:08 +01:00
trace.h softmmu: Add missing trace-events file 2020-09-09 17:15:18 +01:00
vl.c system/vl: Update description for input grab key 2024-02-22 18:46:10 +03:00