Signed-off-by: Changzhi Xie
This commit refactors the FUSE export to process read and write operations
using coroutines, improving concurrency and avoiding blocking the main loop.
The main changes include:
1. Move read_from_fuse_export into coroutine
2. Move read/write processing into coroutin
s frequent coroutine switching introduces unnecessary overhead, limiting
the expected performance improvements.
saz97 (1):
Integration coroutines into fuse export
block/export/fuse.c | 190 +---
1 file changed, 126 insertions(+), 64 deletions(-)
--
2.34.1
Signed-off-by: Changzhi Xie
This commit refactors the FUSE export to process read and write operations
using coroutines, improving concurrency and avoiding blocking the main loop.
The main changes include:
1. Introduce FuseIORequest structure to encapsulate I/O parameters and state
2. Move rea
e) ▲ 2.1% (25.6→26.1 GB/s)
Analysis
High Concurrency (iodepth=64):
Sustained throughput gains (+2.1-2.2%) demonstrate improved scalability
Latency reductions confirm reduced contention in concurrent operations
saz97 (1):
Integration coroutines into fuse export
block/export/fu
(io_req);
+return;
+}
+memcpy(io_req->write_buf, buf, size);
+
+io_req->req = req;
+io_req->inode = inode;
+io_req->size = size;
+io_req->offset = offset;
+io_req->fi = fi;
+io_req->exp = exp;
+
+Coroutine *co = qemu_coroutine_create