Feature #5753
closed
io_uring support in libosmo-netif
Added by laforge over 1 year ago.
Updated 2 months ago.
Description
Once libosmocore provides the new API for the upcoming io_uring backend (#5751) we will need to port libosmo-netif over to this new API.
Currently we're using the following code-paths for I/O
libosmo-netif function |
I/O function |
provided by |
osmo_stream_{cli,srv}_recv |
recv |
- |
osmo_stream_srv_recv |
sctp_recvmsg |
libsctp |
osmo_stream_cli_write |
send |
- |
osmo_stream_{cli,srv}_write |
sctp_send |
libsctp |
We need to analyze each of those and migrate, if possible.
Files
- Related to Feature #5752: io_uring support in libosmo-sigtran added
- Priority changed from Normal to High
some clarification compared to the orignal ticket from 5 months ago:
- libosmo-netif shall be ported over to using osmo_io
- whether or not osmo_io will use io_uring or whatever other backend to the operating system kernel, is out of scope for this ticket
- there's no need for libosmo-netif to directly interact with the I/O functions indicated in the original ticket description. They merely existed as a result of an analysis before the work started.
So in the end, we will have the following call flow:
- an osmo-* application program, calling
- libosmo-netif functions (like today), calling
- osmo_io functions (as opposed to other direct I/O APIs today)
- calling whatever osmo_io backend, calling
- operating system calls
- Assignee changed from daniel to osmith
- Assignee changed from osmith to arehbein
- Status changed from New to In Progress
- % Done changed from 0 to 60
- % Done changed from 60 to 80
Currently waiting for more feedback (CR...); there has been a discussion recently concerning certain design choices in the IRC #osmocom channel (I have attached a chat log for reference).
- Related to Bug #6164: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] added
- % Done changed from 80 to 90
- Blocked by Bug #6222: Memory leak triggered by stream_test added
- Status changed from Feedback to Stalled
- % Done changed from 90 to 70
(waiting for new input regarding how to proceed with the SCTP part of the task)
- Assignee deleted (
arehbein)
- Status changed from Stalled to Resolved
- % Done changed from 70 to 100
- Related to Bug #6279: stream_cli fails to connect when using SCTP if no local address is set added
- Status changed from Resolved to Stalled
- Assignee set to Hoernchen
my latest WIP code is in laforge/osmo_io_sctp
branch of libosmo-netif.git
I think the latest problem revolved around non-blocking connect of SCTP client sockets, and I hacked examples/osmo-stream-* to use SCTP in order to test/play/debug that.
- Status changed from Stalled to Resolved
- Status changed from Resolved to In Progress
(redmine misguided auto close mishap)
- Status changed from In Progress to Resolved
- Related to Feature #6357: run (some?) tests with io_uring backend for osmo_io added
Also available in: Atom
PDF