Message ID | 20240118144823.1497953-1-stefanha@redhat.com (mailing list archive) |
---|---|
Headers | show |
Series | monitor: only run coroutine commands in qemu_aio_context | expand |
Am 18.01.2024 um 15:48 hat Stefan Hajnoczi geschrieben: > v2: > - Filter image format in 141 test output [Kevin] > - Fix pylint and mypy errors in 141 [Kevin] > > Several bugs have been reported related to how QMP commands are rescheduled in > qemu_aio_context: > - https://gitlab.com/qemu-project/qemu/-/issues/1933 > - https://issues.redhat.com/browse/RHEL-17369 > - https://bugzilla.redhat.com/show_bug.cgi?id=2215192 > - https://bugzilla.redhat.com/show_bug.cgi?id=2214985 > > The first instance of the bug interacted with drain_call_rcu() temporarily > dropping the BQL and resulted in vCPU threads entering device emulation code > simultaneously (something that should never happen). I set out to make > drain_call_rcu() safe to use in this environment, but Paolo and Kevin discussed > the possibility of avoiding rescheduling the monitor_qmp_dispatcher_co() > coroutine for non-coroutine commands. This would prevent monitor commands from > running during vCPU thread aio_poll() entirely and addresses the root cause. > > This patch series implements this idea. qemu-iotests is sensitive to the exact > order in which QMP events and responses are emitted. Running QMP handlers in > the iohandler AioContext causes some QMP events to be ordered differently than > before. It is therefore necessary to adjust the reference output in many test > cases. The actual QMP code change is small and everything else is just to make > qemu-iotests happy. > > If you have bugs related to the same issue, please retest them with these > patches. Thanks! Thanks, applied to the block branch. Kevin