Hi, This thread is to discuss the possibility of stracing requests submitted through io_uring. I'm not directly involved in io_uring development, so I'm posting this out of interest in using strace on processes utilizing io_uring. io_uring gives the developer a way to bypass the syscall interface, which results in loss of information when tracing. This is a strace fragment on "io_uring-cp" from liburing: io_uring_enter(5, 40, 0, 0, NULL, 8) = 40 io_uring_enter(5, 1, 0, 0, NULL, 8) = 1 io_uring_enter(5, 1, 0, 0, NULL, 8) = 1 ... What really happens are read + write requests. Without that information the strace output is mostly useless. This loss of information is not new, e.g. calls through the vdso or futext fast paths are also invisible to strace. But losing filesystem I/O calls are a major blow, imo. What do people think? >From what I can tell, listing the submitted requests on io_uring_enter() would not be hard. Request completion is asynchronous, however, and may not require io_uring_enter() syscall. Am I correct? Is there some existing tracing infrastructure that strace could use to get async completion events? Should we be introducing one? Thanks, Miklos