
High-performance I/O using io_uring via osmo_io (osmodevcon2024)
Chaos Computer Club - archive feed · Andreas Eversberg, Harald Welte (sysmocom)
May 3, 202436m 15s
Audio is streamed directly from the publisher (cdn.media.ccc.de) as published in their RSS feed. Play Podcasts does not host this file. Rights-holders can request removal through the copyright & takedown page.
Show Notes
Traditional socket I/O via `read/write/recvfrom/sendto/recvmsg/sendmsg` and friends creates a very high system call load. A highly-loaded osmo-bsc spends most of its time in syscall entry and syscall exit.
`io_uring` is a modern Linux kernel mechanism to avoid this syscall overhead. We have introduced the `osmo_io`API to libosmocore as a generic back-end for non-blocking/asynchronous I/O and a back-end for our classic `osmo_fd` / `poll` approach as well as a new backend for `io_uring`.
The talk will cover
* a very basic io_uring introduction
* a description of the osmo_io API
* the difficulties porting from osmo_fd to osmo_io
* status of porting various sub-systems over to osmo_io
about this event: https://pretalx.sysmocom.de/osmodevcon2024/talk/ZBJWUP/
Topics
osmodevcon20242092024osmodevcon2024osmocom