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 6:
(6 comments)
File src/core/osmo_io_internal.h:
https://gerrit.osmocom.org/c/libosmocore/+/40725/comment/552ae731_981cd2ff?u... : PS6, Line 116: /* ! array of rings the submitted read SQEs have been submitted */
"have been submitted to"
Done
File src/core/osmo_io_uring.c:
https://gerrit.osmocom.org/c/libosmocore/+/40725/comment/26394b77_0fcf72bf?u... : PS6, Line 115: g_ring = calloc(1, sizeof(*g_ring));
use talloc.
Done
https://gerrit.osmocom.org/c/libosmocore/+/40725/comment/4e4bec31_ca323694?u... : PS6, Line 164: LOGP(DLIO, LOGL_NOTICE, "increasing io_uring size to %d.\n", g_io_uring_size);
Please put this into 1 single LOGP.
Done
https://gerrit.osmocom.org/c/libosmocore/+/40725/comment/916ef134_960c9bdd?u... : PS6, Line 172: sqe = io_uring_get_sqe(&g_ring->ring);
so here we end up with 2 read SQEs on 2 different queues. […]
I added a check, so subsequent read SQEs are never spread over different rings.
https://gerrit.osmocom.org/c/libosmocore/+/40725/comment/66a64478_c9e53bf8?u... : PS6, Line 527: while ((sqe = io_uring_get_sqe(iofd->u.uring.read_ring[idx])) == NULL);
that looks like a really nice tight non-blocking loop filling the CPU?
Done
https://gerrit.osmocom.org/c/libosmocore/+/40725/comment/3f85a947_de8c504b?u... : PS6, Line 543: while ((sqe = io_uring_get_sqe(iofd->u.uring.write_ring)) == NULL);
that looks like a really nice tight non-blocking loop filling the CPU?
Done