Attention is currently required from: laforge, pespin.
jolly 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 13:
(3 comments)
File src/core/osmo_io_uring.c:
https://gerrit.osmocom.org/c/libosmocore/+/40725/comment/bf35f55d_44a9dc60?u... : PS12, Line 194: /* The current ring is full, so we cannot get SQE for the current ring. */
And you removed this block, perhaps you wanted to move it up?
This check is not required.
It did stop, if the ring changed, but there is already an SQE on the old ring.
The check above "if (read && ...reads_submitted > 0)" will quit, if the current ring is full and there is already one or more SQEs on the currnet ring.
File src/core/osmo_io_uring.c:
https://gerrit.osmocom.org/c/libosmocore/+/40725/comment/8fa50bbf_264a0aa2?u... : PS13, Line 187: /* The current ring is full, subsequent reasd SQEs on different ring are not allowed. */
typo: read
Done
https://gerrit.osmocom.org/c/libosmocore/+/40725/comment/3ce5a056_2e785a9e?u... : PS13, Line 188: if (read && iofd->u.uring.reads_submitted > 0)
btw, I think something's wrong here. […]
The check in line 179 prevents from submitting subsequent SQEs on a new ring.
The check here triggers when the old ring is full (we know it after io_uring_get_sqe() fails), but we already have SQEs. We don't want to create a new ring and add subsequent SQE.