On Tue, 16 Jan 2024 at 19:01, Stefan Hajnoczi <stefa...@redhat.com> wrote: > > 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.
Hi; we have a suspicion that this change has resulted in a flaky-CI test: iotest-144 sometimes fails, apparently because a "return" result from QMP isn't always returned at the same place in relation to other QMP events. Could you have a look at it? https://gitlab.com/qemu-project/qemu/-/issues/2126 thanks -- PMM