All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v3 0/5] block-backend: process I/O in the current AioContext
@ 2023-09-12 23:10 Stefan Hajnoczi
  2023-09-12 23:10 ` [PATCH v3 1/5] block: remove AIOCBInfo->get_aio_context() Stefan Hajnoczi
                   ` (5 more replies)
  0 siblings, 6 replies; 14+ messages in thread
From: Stefan Hajnoczi @ 2023-09-12 23:10 UTC (permalink / raw)
  To: qemu-devel
  Cc: Klaus Jensen, kwolf, Cleber Rosa, John Snow, Hanna Reitz,
	Philippe Mathieu-Daudé, Keith Busch, Paolo Bonzini, Peter Xu,
	qemu-block, Stefan Hajnoczi, Vladimir Sementsov-Ogievskiy,
	David Hildenbrand, Fam Zheng

v3
- Add Patch 2 to fix a race condition in test-bdrv-drain. This was the CI
  failure that bumped this patch series from Kevin's pull request.
- Add missing 051.pc.out file. I tried qemu-system-aarch64 to see of 051.out
  also needs to be updated, but no changes were necessary. [Kevin]
v2
- Add patch to remove AIOCBInfo->get_aio_context() [Kevin]
- Add patch to use qemu_get_current_aio_context() in block-coroutine-wrapper so
  that the wrappers use the current AioContext instead of
  bdrv_get_aio_context().

Switch blk_aio_*() APIs over to multi-queue by using
qemu_get_current_aio_context() instead of blk_get_aio_context(). This change
will allow devices to process I/O in multiple IOThreads in the future.

The final patch requires my QIOChannel AioContext series to pass
tests/qemu-iotests/check -qcow2 281 because the nbd block driver is now
accessed from the main loop thread in addition to the IOThread:
https://lore.kernel.org/qemu-devel/20230823234504.1387239-1-stefanha@redhat.com/T/#t

Based-on: 20230823234504.1387239-1-stefanha@redhat.com

Stefan Hajnoczi (5):
  block: remove AIOCBInfo->get_aio_context()
  test-bdrv-drain: avoid race with BH in IOThread drain test
  block-backend: process I/O in the current AioContext
  block-backend: process zoned requests in the current AioContext
  block-coroutine-wrapper: use qemu_get_current_aio_context()

 include/block/aio.h                |  1 -
 include/block/block-global-state.h |  2 ++
 include/block/block-io.h           |  1 -
 block/block-backend.c              | 35 ++++++++----------------------
 block/io.c                         | 23 +++++++-------------
 hw/nvme/ctrl.c                     |  7 ------
 softmmu/dma-helpers.c              |  8 -------
 tests/unit/test-bdrv-drain.c       |  8 +++++++
 util/thread-pool.c                 |  8 -------
 scripts/block-coroutine-wrapper.py |  6 ++---
 tests/qemu-iotests/051.pc.out      |  4 ++--
 11 files changed, 31 insertions(+), 72 deletions(-)

-- 
2.41.0



^ permalink raw reply	[flat|nested] 14+ messages in thread

end of thread, other threads:[~2023-09-15 14:40 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-09-12 23:10 [PATCH v3 0/5] block-backend: process I/O in the current AioContext Stefan Hajnoczi
2023-09-12 23:10 ` [PATCH v3 1/5] block: remove AIOCBInfo->get_aio_context() Stefan Hajnoczi
2023-09-13 15:59   ` Eric Blake
2023-09-14  6:44   ` Klaus Jensen
2023-09-12 23:10 ` [PATCH v3 2/5] test-bdrv-drain: avoid race with BH in IOThread drain test Stefan Hajnoczi
2023-09-13 16:08   ` Eric Blake
2023-09-14 12:01     ` Stefan Hajnoczi
2023-09-12 23:10 ` [PATCH v3 3/5] block-backend: process I/O in the current AioContext Stefan Hajnoczi
2023-09-13 16:20   ` Eric Blake
2023-09-12 23:10 ` [PATCH v3 4/5] block-backend: process zoned requests " Stefan Hajnoczi
2023-09-13 16:22   ` Eric Blake
2023-09-12 23:10 ` [PATCH v3 5/5] block-coroutine-wrapper: use qemu_get_current_aio_context() Stefan Hajnoczi
2023-09-13 16:23   ` Eric Blake
2023-09-15 14:39 ` [PATCH v3 0/5] block-backend: process I/O in the current AioContext Kevin Wolf

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.