Project

General

Profile

Actions

Feature #5755

open

io_uring support in osmo-bsc

Added by laforge over 1 year ago. Updated 26 days ago.

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

80%

Spec Reference:
Tags:

Description

Once libosmocore provides the new API for the upcoming io_uring backend (#5751) we will need to port osmo-bsc over to this new API.

Some I/O is done directly by osmo-bsc, while other I/O is done via libaries such as libosmo-sigtran, libosmo-netif, libosmo-mgcp-client. There are separate tickets for porting over those libraries. Once that has happened, there might also be API changes for osmo-bsc to catch up with.

Currently we're using the following code-paths for I/O

osmo-bsc function I/O function provided by
bsc_sccplite_mgcp_proxy_cb recv -
bsc_sccplite_rx_mgcp send -
cbsp_srv_cb/cbsp_client_read_cb osmo_cbsp_recv_buffered libosmocore
cbsp_tx_decoded osmo_stream_{cli,srv}_send libosmo-netif
Abis interface - libosmo-abis
A+Lb interface - libosmo-sigtran
VTY interface - libosmo-vty
CTRL interface - libosmo-ctrl

We need to analyze each of those and migrate, if possible.

There is also some other I/O like meas_feed, pcu_sock rf_ctrl which are not performance critical and hence can stay like they are and are not further discussed here.


Checklist

  • A+Lb interface via libosmo-sigtran
  • Abis interface via libosmo-abis
  • CBSP interface

Related issues

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

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

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

  • Priority changed from Normal to High
Actions #3

Updated by laforge 4 months ago

  • Assignee set to daniel
Actions #4

Updated by laforge 3 months ago

  • Checklist item A+Lb interface via libosmo-sigtran added
  • Checklist item VTY interface added
  • Checklist item CTRL interface added
  • Checklist item Abis interface via libosmo-abis added
  • Checklist item CBSP interface added
Actions #5

Updated by laforge about 2 months ago

  • Assignee changed from daniel to jolly
Actions #6

Updated by laforge about 2 months ago

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

Updated by laforge about 2 months ago

  • Checklist item stats_reporter added
Actions #8

Updated by laforge 27 days ago

  • Checklist item A+Lb interface via libosmo-sigtran set to Done
Actions #9

Updated by laforge 27 days ago

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

Updated by laforge 26 days ago

  • Checklist item deleted (VTY interface)
  • Checklist item deleted (CTRL interface)
  • Checklist item deleted (stats_reporter)
  • % Done changed from 30 to 50

VTY, CTRL and stats_reporter are tracked in related libosmocore issues and are not performance critical. See #6389, #6390 and #6388, respectively.

Actions #11

Updated by laforge 26 days ago

  • % Done changed from 50 to 80

CBSP interface patches are submitted for review in https://gerrit.osmocom.org/c/libosmocore/+/36145 and https://gerrit.osmocom.org/c/osmo-bsc/+/36146

They pass all BSC_Tests_CBSP tests of our test suite on my local system, at least when running with the classic poll backend (io_uring testing will be next).

Actions #12

Updated by laforge 26 days ago

laforge wrote in #note-11:

They pass all BSC_Tests_CBSP tests of our test suite on my local system, at least when running with the classic poll backend (io_uring testing will be next).

they also all pass with the io_uring backend.

Actions #13

Updated by laforge 15 days ago

  • Checklist item CBSP interface set to Done
Actions

Also available in: Atom PDF

Add picture from clipboard (Maximum size: 48.8 MB)