On 1/31/22 11:55 AM, Spencer Baugh wrote: > > Hi, > > To what extent, if any, was the FlexSC paper an influence on io_uring? > > FlexSC is described in a paper from 2010: > https://www.usenix.org/legacy/events/osdi10/tech/full_papers/Soares.pdf > > FlexSC is a system for asynchronous system calls aimed at achieving > high-performance by avoiding the cost of system calls, in particular the > locality costs of executing kernel code and user code on the same core. > > Implementation-wise, it seems broadly similar to io_uring, in that > system calls are submitted by writing to some location in memory, which > is later picked up by a syscall-execution thread (ala > IORING_SETUP_SQPOLL) which executes it and writes back the result. > > I'm just curious if there was any influence from FlexSC on io_uring. Wasn't aware of this paper, if that answers the question. The idea for async syscalls (to me) date back to the original threadlet/acall ideas from Zach Brown and Ingo, though my implementation ended up being vastly different. The API with the rings of shared memory was a pretty obvious one and not really novel, it's been used in both sw and hw for a long time. -- Jens Axboe