https://projects.osmocom.org/https://projects.osmocom.org/favicon.ico?16647414092021-08-31T09:20:26ZOpen Source Mobile CommunicationsOsmoMGW - Feature #5214: osmo-mgw multithreadinghttps://projects.osmocom.org/issues/5214?journal_id=224812021-08-31T09:20:26Zlaforge
<ul><li><strong>Subject</strong> changed from <i>general multithreading ticket</i> to <i>osmo-mgw multithreading</i></li></ul><p>this deserves a bit better description:</p>
<ul>
<li>osmo-mgw traditionally only operates within one thread, which doesn't scale very far given it's extensive use of small packets and hence high syscall load</li>
<li>we now are introducing the support for operating multiple MGWs from a BSC or MSC to distribute the load across different MGW instances. This is primarily useful for scaling out to multiple physical machines or VMs with separate IP addresses, etc.</li>
<li>in addition to that, and unrelated to the above, we want to introduce real multi-threading support to osmo-mgw, i.e. handle different endpoints in different threads, so that the RTP/RTCP sockets of one endpoint are served within the same thread, but different endpoints can be served by different threads</li>
</ul>
<p>The use of io_uring is a separate, independent option, which doesn't really have a strict relation to multi-threading. io_uring enables even a single-threaded program to handle alot of socket I/O syscalls without many [or even any!] syscalls.</p>