Hi Bernd,
We are currently working on implementing termination support for
fuse-over-io_uring in QEMU, and right now we are focusing on how to
clean up in-flight SQEs properly. Our main question is about how well
the kernel supports robust cancellation for these fuse-over-io_uring
SQEs. Does it actually implement cancellation beyond destroying the
io_uring queue?
In QEMU FUSE export, we need a way to quickly and cleanly detach from
the event loop and cancel any pending SQEs when an export is no longer
in use. Ideally, we want to avoid the more drastic measure of having to
close the entire /dev/fuse fd just to gracefully terminate outstanding
operations.
We are not sure if there's an existing code path that supports async
cancel for these in-flight SQEs in the fuse-over-io_uring setup, or if
additional callbacks might be needed to fully integrate with the
kernel's async cancel mechanism. We also realized libfuse manages
shutdowns differently, typically by signaling a thread via eventfd
rather than relying on async cancel.
Would love to hear your thoughts or suggestions on this!
Thanks,
Brian