{"guid":"bcc6dea4-f8d1-5c14-b5fd-40dae9eae0fa","title":"High-performance I/O using io_uring via osmo_io","subtitle":null,"slug":"osmodevcon2024-209-high-performance-i-o-using-iouring-via-osmoio","link":"https://pretalx.sysmocom.de/osmodevcon2024/talk/ZBJWUP/","description":"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.\n\n`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`.\n\nThe talk will cover\n* a very basic io_uring introduction\n* a description of the osmo_io API\n* the difficulties porting from osmo_fd to osmo_io\n* status of porting various sub-systems over to osmo_io","original_language":"eng","persons":["Andreas Eversberg","Harald Welte (sysmocom)"],"tags":["osmodevcon2024","209","2024","osmodevcon2024","osmocom"],"view_count":137,"promoted":false,"date":"2024-05-03T17:00:00.000+02:00","release_date":"2024-06-01T00:00:00.000+02:00","updated_at":"2026-02-26T11:30:08.182+01:00","length":2175,"duration":2175,"thumb_url":"https://static.media.ccc.de/media/conferences/osmodevcon/2024/209-bcc6dea4-f8d1-5c14-b5fd-40dae9eae0fa.jpg","poster_url":"https://static.media.ccc.de/media/conferences/osmodevcon/2024/209-bcc6dea4-f8d1-5c14-b5fd-40dae9eae0fa_preview.jpg","timeline_url":"https://static.media.ccc.de/media/conferences/osmodevcon/2024/209-bcc6dea4-f8d1-5c14-b5fd-40dae9eae0fa.timeline.jpg","thumbnails_url":"https://static.media.ccc.de/media/conferences/osmodevcon/2024/209-bcc6dea4-f8d1-5c14-b5fd-40dae9eae0fa.thumbnails.vtt","frontend_link":"https://media.ccc.de/v/osmodevcon2024-209-high-performance-i-o-using-iouring-via-osmoio","url":"https://api.media.ccc.de/public/events/bcc6dea4-f8d1-5c14-b5fd-40dae9eae0fa","conference_title":"OsmoDevCon 2024","conference_url":"https://api.media.ccc.de/public/conferences/osmodevcon2024","related":[],"recordings":[{"size":422,"length":2175,"mime_type":"video/webm","language":"eng","filename":"osmodevcon2024-209-eng-High-performance_I_O_using_io_uring_via_osmo_io_webm-hd.webm","state":"new","folder":"webm-hd","high_quality":true,"width":1920,"height":1080,"updated_at":"2024-06-02T18:22:09.466+02:00","recording_url":"https://cdn.media.ccc.de/events/osmodevcon/2024/webm-hd/osmodevcon2024-209-eng-High-performance_I_O_using_io_uring_via_osmo_io_webm-hd.webm","url":"https://api.media.ccc.de/public/recordings/77789","event_url":"https://api.media.ccc.de/public/events/bcc6dea4-f8d1-5c14-b5fd-40dae9eae0fa","conference_url":"https://api.media.ccc.de/public/conferences/osmodevcon2024"},{"size":76,"length":2175,"mime_type":"video/mp4","language":"eng","filename":"osmodevcon2024-209-eng-High-performance_I_O_using_io_uring_via_osmo_io_sd.mp4","state":"new","folder":"h264-sd","high_quality":false,"width":720,"height":576,"updated_at":"2024-06-02T17:31:24.771+02:00","recording_url":"https://cdn.media.ccc.de/events/osmodevcon/2024/h264-sd/osmodevcon2024-209-eng-High-performance_I_O_using_io_uring_via_osmo_io_sd.mp4","url":"https://api.media.ccc.de/public/recordings/77788","event_url":"https://api.media.ccc.de/public/events/bcc6dea4-f8d1-5c14-b5fd-40dae9eae0fa","conference_url":"https://api.media.ccc.de/public/conferences/osmodevcon2024"},{"size":22,"length":2175,"mime_type":"audio/opus","language":"eng","filename":"osmodevcon2024-209-eng-High-performance_I_O_using_io_uring_via_osmo_io_opus.opus","state":"new","folder":"opus","high_quality":false,"width":0,"height":0,"updated_at":"2024-06-02T17:21:33.853+02:00","recording_url":"https://cdn.media.ccc.de/events/osmodevcon/2024/opus/osmodevcon2024-209-eng-High-performance_I_O_using_io_uring_via_osmo_io_opus.opus","url":"https://api.media.ccc.de/public/recordings/77787","event_url":"https://api.media.ccc.de/public/events/bcc6dea4-f8d1-5c14-b5fd-40dae9eae0fa","conference_url":"https://api.media.ccc.de/public/conferences/osmodevcon2024"},{"size":119,"length":2175,"mime_type":"video/webm","language":"eng","filename":"osmodevcon2024-209-eng-High-performance_I_O_using_io_uring_via_osmo_io_webm-sd.webm","state":"new","folder":"webm-sd","high_quality":false,"width":720,"height":576,"updated_at":"2024-06-02T17:02:04.519+02:00","recording_url":"https://cdn.media.ccc.de/events/osmodevcon/2024/webm-sd/osmodevcon2024-209-eng-High-performance_I_O_using_io_uring_via_osmo_io_webm-sd.webm","url":"https://api.media.ccc.de/public/recordings/77784","event_url":"https://api.media.ccc.de/public/events/bcc6dea4-f8d1-5c14-b5fd-40dae9eae0fa","conference_url":"https://api.media.ccc.de/public/conferences/osmodevcon2024"},{"size":33,"length":2175,"mime_type":"audio/mpeg","language":"eng","filename":"osmodevcon2024-209-eng-High-performance_I_O_using_io_uring_via_osmo_io_mp3.mp3","state":"new","folder":"mp3","high_quality":false,"width":0,"height":0,"updated_at":"2024-06-02T16:27:43.419+02:00","recording_url":"https://cdn.media.ccc.de/events/osmodevcon/2024/mp3/osmodevcon2024-209-eng-High-performance_I_O_using_io_uring_via_osmo_io_mp3.mp3","url":"https://api.media.ccc.de/public/recordings/77776","event_url":"https://api.media.ccc.de/public/events/bcc6dea4-f8d1-5c14-b5fd-40dae9eae0fa","conference_url":"https://api.media.ccc.de/public/conferences/osmodevcon2024"},{"size":460,"length":2175,"mime_type":"video/mp4","language":"eng","filename":"osmodevcon2024-209-eng-High-performance_I_O_using_io_uring_via_osmo_io_hd.mp4","state":"new","folder":"h264-hd","high_quality":true,"width":1920,"height":1080,"updated_at":"2024-06-01T20:34:18.098+02:00","recording_url":"https://cdn.media.ccc.de/events/osmodevcon/2024/h264-hd/osmodevcon2024-209-eng-High-performance_I_O_using_io_uring_via_osmo_io_hd.mp4","url":"https://api.media.ccc.de/public/recordings/77265","event_url":"https://api.media.ccc.de/public/events/bcc6dea4-f8d1-5c14-b5fd-40dae9eae0fa","conference_url":"https://api.media.ccc.de/public/conferences/osmodevcon2024"}]}