Attention is currently required from: jolly, laforge.
pespin has posted comments on this change by jolly. ( https://gerrit.osmocom.org/c/libosmocore/+/40725?usp=email )
Change subject: Automatically increase io_uring, if too small. ......................................................................
Patch Set 6:
(2 comments)
Patchset:
PS6:
Due to the comments I wrote I still personally believe this is shooting us in the foot, it's not the […]
More thoughts on this: With my proposal where we queue iofds waiting for an SQE we could end up in some sort of starvation or even deadlock, because we may end up with tons of fds/sockets with pending READs and nothing external (eg. a packet arriving) triggering a READ from it, leaving outside from the reading set some socket which may already contain some data to be read.
File src/core/osmo_io_uring.c:
https://gerrit.osmocom.org/c/libosmocore/+/40725/comment/bf6415a1_10d4d758?u... : PS6, Line 172: sqe = io_uring_get_sqe(&g_ring->ring);
In the end, they are all empty msgb's waiting for some incoming data
Aren't we using it from read()? Then it's not simply empty msgbs waiting for packets, but buffers being filled from an in-order stream of bytes which needs to be kept in order when usbmitting the msgbs to upper layers (or when resegmenting internally).