Skip to content

qemu: Make AIO threading framework generic.

Gautham R Shenoy qemu-devel 1 version In review

Get series with b4
b4 am [email protected]

Versions newest first

  1. v3 Latest3 patches 10 repliesIn review

Changes in v3 from the cover letter

=====================================================================
- Made use of the qemu-thread.c wrappers in place of pthread_() calls.
- Added a couple fo qemu-thread wrappers for handling pthread_attr_t type.
- Audited the error handling in the generic asynchronous task offloading framework code.

Patches in v3 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/3qemu: Add qemu-wrappers for pthread_attr_tqemu-thread.c qemu-thread.h+45 -05 replies
2/3qemu: Generic asynchronous threading framework to offload tasksMakefile.objs async-work.c async-work.h+223 -15 replies
3/3qemu: Convert AIO code to use the generic threading infrastructure.posix-aio-compat.c+29 -1260 replies

Reviews trailers per patch

No Reviewed-by, Acked-by or Tested-by trailers for v3 yet.

Read the v3 thread

Cover letter [Qemu-devel] [PATCH V3 0/3] qemu: Make AIO threading framework generic.

Hi,

This is the v3 of the patch-series to have a generic asynchronous task offloading framework within qemu.

V2 can be found here:
http://lists.gnu.org/archive/html/qemu-devel/2010-05/msg02227.html

Changes from V2:
=====================================================================
- Made use of the qemu-thread.c wrappers in place of pthread_() calls.
- Added a couple fo qemu-thread wrappers for handling pthread_attr_t type.
- Audited the error handling in the generic asynchronous task offloading framework code.

Description
=====================================================================
This patch series decouples the asynchrnous threading framework implementation from posix-aio-compat.c to implement a generic asynchrnous task offloading threading framework which can be used by other subsystems within QEMU.

Currently within QEMU, the AIO subsystem (paio) creates a bunch of asynchronous threads to offload any blocking operations so that the vcpu threads and the IO thread can go back to servicing any other guest requests.

This offloading framework can be used by subsystems such as virtio-9p, Asynchronous encoding for vnc-server, so that the vcpu thread can offload blocking operations on to the asynchronous threads and resume servicing any other guest requests. The asynchronous threads, after finishing the blocking operations can then transfer the control over to the IO thread so that the latter can handle the post_blocking_operation().

The patch series passed fsstress test without any issues.

Could it be considered for inclusion ?

---

Aneesh Kumar K.V (1):
qemu: Generic asynchronous threading framework to offload tasks

Gautham R Shenoy (2):
qemu: Add qemu-wrappers for pthread_attr_t
qemu: Convert AIO code to use the generic threading infrastructure.

 Makefile.objs      |    3 +
 async-work.c       |  136 ++++++++++++++++++++++++++++++++++++++++++++++
 async-work.h       |   85 +++++++++++++++++++++++++++++
 posix-aio-compat.c |  155 ++++++++++------------------------------------------
 qemu-thread.c      |   34 +++++++++++
 qemu-thread.h      |   11 ++++
 6 files changed, 297 insertions(+), 127 deletions(-)
 create mode 100644 async-work.c
 create mode 100644 async-work.h
Signature · 2 lines
Thanks and Regards
gautham.