[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH RFC 0/5] Introduce "-object iothread-group"
From: |
Fam Zheng |
Subject: |
[Qemu-devel] [PATCH RFC 0/5] Introduce "-object iothread-group" |
Date: |
Mon, 10 Jul 2017 15:20:22 +0800 |
Last time we've looked at "-object iothread,spawns=N" but it was a bit abusive.
A dedicated "iothread-group" class is cleaner from the interface point of view.
This series does that.
It has the same set of poll parameters as the existing "iothread" object, plus
a "size" option to specify how many threads to start. Using iothread-group
doesn't require the user to explicitly create the contained IOThreads. The
IOThreads are created by the group object.
Internally, IOThreads share one AioContext. This is to make it easier to adapt
this to the current data plane code (see the last patch). But it is an
implementation detail, and will change depending on the block layer multiqueue
needs.
TODO:
- qmp_query_iothread_groups, in addition to proper QOM @child property from
IOThreadGroup to its IOThread instances.
- Add virtio-scsi.
- Variant of iothread_stop_all().
Fam Zheng (5):
aio: Wrap poll parameters into AioContextPollParams
iothread: Don't error on windows
iothread: Extract iothread_start
Introduce iothread-group
virtio-blk: Add iothread-group property
Makefile.objs | 2 +-
hw/block/dataplane/virtio-blk.c | 18 ++--
hw/block/virtio-blk.c | 6 ++
include/block/aio.h | 18 ++--
include/hw/virtio/virtio-blk.h | 2 +
include/sysemu/iothread.h | 35 ++++++-
iothread-group.c | 210 ++++++++++++++++++++++++++++++++++++++++
iothread.c | 97 +++++++++----------
util/aio-posix.c | 10 +-
util/aio-win32.c | 8 +-
10 files changed, 328 insertions(+), 78 deletions(-)
create mode 100644 iothread-group.c
--
2.9.4
- [Qemu-devel] [PATCH RFC 0/5] Introduce "-object iothread-group",
Fam Zheng <=
- [Qemu-devel] [PATCH RFC 1/5] aio: Wrap poll parameters into AioContextPollParams, Fam Zheng, 2017/07/10
- [Qemu-devel] [PATCH RFC 2/5] iothread: Don't error on windows, Fam Zheng, 2017/07/10
- [Qemu-devel] [PATCH RFC 3/5] iothread: Extract iothread_start, Fam Zheng, 2017/07/10
- [Qemu-devel] [PATCH RFC 4/5] Introduce iothread-group, Fam Zheng, 2017/07/10
- [Qemu-devel] [PATCH RFC 5/5] virtio-blk: Add iothread-group property, Fam Zheng, 2017/07/10