On Mon, Dec 09, 2024 at 06:43:02PM -0500, Gabriel Krisman Bertazi wrote: > During LPC 2022, Josh Triplett proposed io_uring_spawn as a mechanism to > fork and exec new processes through io_uring [1]. The goal, according > to him, was to have a very efficient mechanism to quickly execute tasks, > eliminating the multiple roundtrips to userspace required to fork, > perform multiple $PATH lookup and finally execve. In addition, he > mentioned this would allow for a more simple implementation of > preparatory tasks, such as file redirection configuration, and handling > of stuff like posix_spawn_file_actions_t. > > This RFC revives his original patchset. I fixed all the pending issues > I found with task submission, including the issue blocking the work at > the time, a kernel corruption after a few spawns, converted the execve > command into execveat* variant, cleaned up the code and surely > introduced a few bugs of my own along the way. At this point, I made it > an RFC because I have a few outstanding questions about the design, in > particular whether the CLONE context would be better implemented as a > special io-wq case to avoid the exposure of io_issue_sqe and > duplication of the dispatching logic. Thank you for updating and debugging this! Much appreciated.