Project

General

Profile

Actions

Feature #5753

closed

io_uring support in libosmo-netif

Added by laforge over 1 year ago. Updated 2 months ago.

Status:
Resolved
Priority:
High
Assignee:
Target version:
-
Start date:
11/09/2022
Due date:
% Done:

100%

Spec Reference:
Tags:

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

chatlog.txt chatlog.txt 9.44 KB arehbein, 07/02/2023 05:21 PM

Related issues

Related to libosmocore - Feature #5751: io_uring support in libosmocoreResolvedjolly11/09/2022

Actions
Related to libosmo-sccp + libosmo-sigtran - Feature #5752: io_uring support in libosmo-sigtranResolvedjolly11/09/2022

Actions
Related to libosmo-netif - Bug #6164: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]Resolvedarehbein08/31/2023

Actions
Related to libosmo-netif - Bug #6279: stream_cli fails to connect when using SCTP if no local address is setResolvedlaforge11/29/2023

Actions
Related to Core testing infrastructure - Feature #6357: run (some?) tests with io_uring backend for osmo_ioResolvedosmith02/09/2024

Actions
Blocked by libosmo-netif - Bug #6222: Memory leak triggered by stream_testResolvedarehbein10/17/2023

Actions
Actions #1

Updated by laforge over 1 year ago

  • Related to Feature #5751: io_uring support in libosmocore added
Actions #2

Updated by laforge over 1 year ago

  • Tags set to io_uring
Actions #3

Updated by laforge about 1 year ago

  • Related to Feature #5752: io_uring support in libosmo-sigtran added
Actions #4

Updated by laforge about 1 year ago

  • Priority changed from Normal to High
Actions #5

Updated by laforge about 1 year ago

  • Assignee set to daniel
Actions #6

Updated by laforge about 1 year ago

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
Actions #7

Updated by laforge about 1 year ago

  • Assignee changed from daniel to osmith
Actions #8

Updated by laforge about 1 year ago

  • Assignee changed from osmith to arehbein
Actions #9

Updated by arehbein about 1 year ago

  • Status changed from New to In Progress
  • % Done changed from 0 to 60
Actions #10

Updated by arehbein 10 months ago

  • % Done changed from 60 to 80
Actions #11

Updated by arehbein 10 months ago

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).

Actions #12

Updated by fixeria 8 months ago

  • Related to Bug #6164: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] added
Actions #13

Updated by arehbein 6 months ago

  • % Done changed from 80 to 90
Actions #14

Updated by pespin 6 months ago

  • Blocked by Bug #6222: Memory leak triggered by stream_test added
Actions #15

Updated by arehbein 6 months ago

  • 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)

Actions #16

Updated by laforge 5 months ago

  • Assignee deleted (arehbein)
Actions #17

Updated by laforge 5 months ago

  • Status changed from Stalled to Resolved
  • % Done changed from 70 to 100
Actions #18

Updated by laforge 5 months ago

  • Related to Bug #6279: stream_cli fails to connect when using SCTP if no local address is set added
Actions #19

Updated by laforge 3 months ago

  • 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.

Actions #20

Updated by laforge 3 months ago

  • Status changed from Stalled to Resolved
Actions #21

Updated by Hoernchen 3 months ago

  • Status changed from Resolved to In Progress

(redmine misguided auto close mishap)

Actions #22

Updated by laforge 2 months ago

  • Status changed from In Progress to Resolved
Actions #23

Updated by laforge 2 months ago

  • Related to Feature #6357: run (some?) tests with io_uring backend for osmo_io added
Actions

Also available in: Atom PDF

Add picture from clipboard (Maximum size: 48.8 MB)