20-24 September 2021
US/Pacific timezone

io_uring: BPF controlled I/O

22 Sep 2021, 07:00
Refereed Track/Virtual-Room (LPC Virtual)

Refereed Track/Virtual-Room

LPC Virtual

LPC Refereed Track (Closed) LPC Refereed Track


Pavel Begunkov


io_uring is an asynchronous I/O API crafted for efficiency, where one of the reasons for using shared rings is to reduce context switching. It got lots of of features since introduction, and pushing it further we want to give away some of the control over submitting and controlling I/O to BPF, minimising the number of context switches even more.

  • It should keep the number of system calls to a minimum.
  • Help to lower overhead on scheduling user processes to CPUs when they have not much to do and will go to sleep briefly.
  • Be an alternative to submission queue polling for latency reduction not taking as much CPU time at the same moment.

We'll go over the current design [1] and decisions, issues and plans, and hopefully it will engage a discussion and give impetus to curious minds to try it out and share ideas on how to tailor the API to fit their use cases.

[1] https://lore.kernel.org/io-uring/a83f147b-ea9d-e693-a2e9-c6ce16659749@gmail.com/T/#m31d0a2ac6e2213f912a200f5e8d88bd74f81406b

I agree to abide by the anti-harassment policy I agree

Primary author

Pavel Begunkov

Presentation Materials

There are no materials yet.