osmo-mgw/include/osmocom/mgcp
Harald Welte 352b967d1b Convert RTP/RTCP/OSMUX I/O from osmo_fd to osmo_io
Converting from osmo_fd to osmo_io allows us to switch to the new
io_uring backend and benefit from related performance benefits.

In a benchmark running 200 concurrent bi-directional voice calls with
GSM-EFR codec, I am observing:

* the code before this patch uses 40..42% of a single core on a
  Ryzen 5950X at 200 calls (=> 200 endpoints with each two connections)

* no increase in CPU utilization before/after this patch, i.e. the
  osmo_io overhead for the osmo_fd backend is insignificant compared
  to the direct osmo_fd mode before

* an almost exactly 50% reduction of CPU utilization when running the
  same osmo-mgw build with LIBOSMO_IO_BACKEND=IO_URING - top shows
  19..21% for the same workload instead of 40..42% with the OSMO_FD
  default backend.

* An increase of about 4 Megabytes in both RSS and VIRT size when
  enabling the OSMO_IO backend.  This is likely the memory-mapped rings.

No memory leakage is observed when using either of the backends.

Change-Id: I8471960d5d8088a70cf105f2f40dfa5d5458169a
2024-04-02 19:40:03 +02:00
..
Makefile.am ctrl: take both address and port from vty config 2022-12-20 19:00:45 +03:00
debug.h Add Osmux log category 2022-09-09 16:04:19 +02:00
mgcp.h Convert RTP/RTCP/OSMUX I/O from osmo_fd to osmo_io 2024-04-02 19:40:03 +02:00
mgcp_codec.h mgcp_codec: fix codec decision 2023-05-22 11:18:45 +02:00
mgcp_common.h mgcp: correctly put NUL character in mgcp_msg_terminate_nul() 2023-12-17 18:54:25 +07:00
mgcp_conn.h add mgcp_conn_rtp_type_names[] 2023-11-01 21:30:29 +01:00
mgcp_e1.h mgcp_e1: be more frugal withe E1 line resources 2023-02-22 13:03:54 +01:00
mgcp_endp.h mgw: Allow auditing speciall 'null' endpoint 2023-06-15 11:08:50 +02:00
mgcp_iuup.h Initial IuUP support using proper FSMs 2022-02-07 17:50:31 +00:00
mgcp_msg.h fix missing includes and forward declarations 2021-09-10 17:24:45 +02:00
mgcp_network.h Convert RTP/RTCP/OSMUX I/O from osmo_fd to osmo_io 2024-04-02 19:40:03 +02:00
mgcp_protocol.h mgcp_protocol: get rid of policy_cb and change_cb 2021-08-05 10:00:59 +02:00
mgcp_ratectr.h osmux: Add connection and global rate counters 2022-09-22 21:44:46 +02:00
mgcp_sdp.h mgw: clean up codec negotiation (sdp) 2018-06-23 11:39:44 +00:00
mgcp_stat.h get rid of mgcp_internal.h 2020-08-10 22:56:59 +02:00
mgcp_threads_queue.h add a lock-free bounded spsc interthread queue 2021-11-17 21:20:08 +00:00
mgcp_trunk.h drop cfg 'sdp audio fmtp-extra' 2024-02-06 03:04:10 +01:00
osmux.h osmux: Rename function and pass msgb directly to it 2022-10-26 11:56:05 +02:00
vty.h mgcp_vty: add user attributes to configuration commands 2020-10-08 19:26:51 +02:00