]> git.ipfire.org Git - thirdparty/qemu.git/commit
system/qdev-monitor: move drain_call_rcu call under if (!dev) in qmp_device_add()
authorDmitrii Gavrilov <ds-gavr@yandex-team.ru>
Fri, 3 Nov 2023 10:56:02 +0000 (13:56 +0300)
committerMichael Tokarev <mjt@tls.msk.ru>
Wed, 13 Mar 2024 20:09:00 +0000 (23:09 +0300)
commite55ec34d3e459f1d0b77b1f7239be91638b57bd9
treedbfab4bf89197fee3921ddbed123d11415526b07
parentce252563f2b47df1464f787aee6c8ee1f14b6e0b
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 7bed89958bfbf40df 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: 7bed89958bf ("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 012b170173bcaa14b9bc26209e0813311ac78489)
Signed-off-by: Michael Tokarev <mjt@tls.msk.ru>
softmmu/qdev-monitor.c