libosmocore / osmo_fd / select() / performance

This is merely a historical archive of years 2008-2021, before the migration to mailman3.

A maintained and still updated list archive can be found at https://lists.osmocom.org/hyperkitty/list/OpenBSC@lists.osmocom.org/.

Harald Welte laforge at osmocom.org
Tue Jul 21 08:39:57 UTC 2020


Hi all,

it has been coming up in at least two contexts recently: Select is showing
up a lot in system-level profiles particularly on osmo-bts.

This is hardly surprising, as select() is not particularly known for
efficiency.  It was used back in 2008 for the *BSC*, in a context where
we were talking about 1-10 BTS with each no more than 1-2 TRX.  Now we
are using the same osmo_fd abstraction on the BTS, where the number of
messages per second is much higher, particularly in osmo-bts-trx with
its TRXD protocol, and particularly with higher number of TRX per BTS.

There is an older feature request to introduce epoll support in https://osmocom.org/issues/1579
but unfortunately nobody has been finding the resources and/or time to
implement it.

Meanwhile, 1.5 years ago, the Linux kernel received a new sub-system
called io_uring, which I would personally love to support. Here are some
pointers for those who are interested:
	https://lwn.net/Articles/776703/
	https://kernel.dk/io_uring.pdf
	https://lwn.net/Kernel/Index/#io_uring

As unfortunately not everyone is using half-way recent kernels, we will
likely have to fall back to epoll or something like that.

Regards,
	Harald
-- 
- Harald Welte <laforge at osmocom.org>            http://laforge.gnumonks.org/
============================================================================
"Privacy in residential applications is a desirable marketing option."
                                                  (ETSI EN 300 175-7 Ch. A6)



More information about the OpenBSC mailing list