Hi, This patch series is strictly RFC only.
It implements a generic asynchrnous task offloading threading framework based on the threading model used in the AIO subsystem. Currently within QEMU, AIO subsystem is the only one which creates a bunch of asynchronous threads to execute any blocking operations so that the vcpu threads and the IO thread can go back to servicing any other guest requests. We would want to make use of this offloading model in case of virtio-9p where the asynchronous threads handle the POSIX operations and transfer the control to the IO thread which, depending on current-state in the state-machine, either offloads more work to be handled by the asynnchronous thread pool or sends the results of the operation to the guest. For this purpose, we need a generic task-offloading infrastructure, and this patch series implements just that. The patch series passed fsstress test without any issues. Awaiting your comments. --- Aneesh Kumar K.V (1): qemu: Create a generic asynchronous threading framework to offload tasks Gautham R Shenoy (1): qemu: Convert paio code to use the generic threading infrastructure. Makefile.objs | 2 + async-work.c | 149 ++++++++++++++++++++++++++++++++++++++++++++++++++ async-work.h | 85 ++++++++++++++++++++++++++++ posix-aio-compat.c | 156 ++++++++++------------------------------------------ 4 files changed, 266 insertions(+), 126 deletions(-) create mode 100644 async-work.c create mode 100644 async-work.h -- Thanks and Regards gautham.