On 2020/4/7 22:07, Paolo Bonzini wrote:
ARM machines and other weakly-ordered architectures have been suffering for a long time from hangs in qemu-img and qemu-io. For QEMU binaries these are mitigated by the timers that sooner or later fire in the main loop, but these will not happen for the tools and probably not with I/O threads either.
yes, we occasionally see qemu main thread hangs and VM stuck in in-shutdown state on aarch64 platform. So this could happen with I/O threads.
The fix is in patch 5. Patch 1-3 are docs updates that explain the bug, and patch 4 is a bugfix exposed by the new patch. Paolo Paolo Bonzini (5): atomics: convert to reStructuredText atomics: update documentation rcu: do not mention atomic_mb_read/set in documentation aio-wait: delegate polling of main AioContext if BQL not held async: use explicit memory barriers docs/devel/atomics.rst | 501 +++++++++++++++++++++++++++++++++++++++ docs/devel/atomics.txt | 403 ------------------------------- docs/devel/index.rst | 1 + docs/devel/rcu.txt | 4 +- include/block/aio-wait.h | 22 ++ include/block/aio.h | 29 +-- util/aio-posix.c | 16 +- util/aio-win32.c | 17 +- util/async.c | 16 +- 9 files changed, 576 insertions(+), 433 deletions(-) create mode 100644 docs/devel/atomics.rst delete mode 100644 docs/devel/atomics.txt