On 12/3/24 6:54 PM, lizetao wrote: > Hi, > >> -----Original Message----- >> From: Pavel Begunkov <asml.silence@xxxxxxxxx> >> Sent: Tuesday, December 3, 2024 10:44 PM >> To: lizetao <lizetao1@xxxxxxxxxx>; Jens Axboe <axboe@xxxxxxxxx> >> Cc: io-uring@xxxxxxxxxxxxxxx >> Subject: Re: [PATCH -next] io_uring: add support for fchmod >> >> On 11/26/24 15:07, lizetao wrote: >>>>>>> On 11/19/24 1:12 AM, lizetao wrote: >>>>>>> Adds support for doing chmod through io_uring. >> IORING_OP_FCHMOD >>>>>>> behaves like fchmod(2) and takes the same arguments. >>>>> >>>>>> Looks pretty straight forward. The only downside is the forced use of >> REQ_F_FORCE_ASYNC - did you look into how feasible it would be to allow >> non-blocking issue of this? Would imagine the majority of fchmod calls end >> up not blocking in the first place. >>>>> >>>>> Yes, I considered fchmod to allow asynchronous execution and wrote a >> test case to test it, the results are as follows: >>>>> >> >> FYI, this email got into spam. > Sorry to bother everyone, but I would like to know if there are any > plans to implement asynchronous system calls through io_uring, and > which system calls are in the planning. No specific plans, existing syscalls are mostly sync by nature of the API for them. Supporting syscalls through io_uring in an efficient manner generally necessitates changing something ala: syscall_foo(..) { return do_foo_syscall(...); } into syscall_foo(...) { start_foo_syscall(...); return wait_on_foo_syscall(...); } where the act of issuing and waiting for the completion of it are two separate entities, generally where the waiting is a waitqueue and the wait_on_foo_syscall() simply waits on it to be completed, and io_uring can use this waitqueue to get a callback when it has finished. That allows efficient processing of syscalls through io_uring. If you don't do that, then you're stuck with do_foo_syscall(), and then io_uring can only support it by punting to the io-wq worker threads which will do the sync do_foo_sycall() part. -- Jens Axboe