[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v2 0/4] io: follow coroutine AioContext in qio_channel_yield()
From: |
Stefan Hajnoczi |
Subject: |
[PATCH v2 0/4] io: follow coroutine AioContext in qio_channel_yield() |
Date: |
Tue, 29 Aug 2023 12:06:18 -0400 |
v2:
- Add Patch 1 & 2 to remove unused NBD aio_context arguments and dead code
[Fabiano]
- Remove attach/detach prototypes from "io/channel.h" [Daniel]
- Add utility function to set fd handlers [Daniel]
The ongoing QEMU multi-queue block layer effort makes it possible for multiple
threads to process I/O in parallel. The nbd block driver is not compatible with
the multi-queue block layer yet because QIOChannel cannot be used easily from
coroutines running in multiple threads. This series changes the QIOChannel API
to make that possible.
Stefan Hajnoczi (4):
nbd: drop unused nbd_receive_negotiate() aio_context argument
nbd: drop unused nbd_start_negotiate() aio_context argument
io: check there are no qio_channel_yield() coroutines during
->finalize()
io: follow coroutine AioContext in qio_channel_yield()
include/block/nbd.h | 3 +-
include/io/channel-util.h | 23 ++++++
include/io/channel.h | 69 ++++++++---------
include/qemu/vhost-user-server.h | 1 +
block/nbd.c | 11 +--
io/channel-command.c | 10 ++-
io/channel-file.c | 9 ++-
io/channel-null.c | 3 +-
io/channel-socket.c | 9 ++-
io/channel-tls.c | 6 +-
io/channel-util.c | 24 ++++++
io/channel.c | 124 ++++++++++++++++++++++---------
migration/channel-block.c | 3 +-
nbd/client-connection.c | 3 +-
nbd/client.c | 14 +---
nbd/server.c | 14 +---
qemu-nbd.c | 4 +-
scsi/qemu-pr-helper.c | 4 +-
util/vhost-user-server.c | 27 +++++--
19 files changed, 228 insertions(+), 133 deletions(-)
--
2.41.0
- [PATCH v2 0/4] io: follow coroutine AioContext in qio_channel_yield(),
Stefan Hajnoczi <=