Attention is currently required from: laforge, pespin.
7 comments:
Commit Message:
Patch Set #9, Line 23: to determine when all submissions are completed.
Sounds like an easy thing to add right? It makes sense to implement this either her eor on a follow- […]
I added a counter in a different patch and destry old rings, once empty. I hope that all cancelled SQE will be completed, not only the cancellation SQEs. If not, the ring would not be destroyed, so this would not cause any harm.
File src/core/osmo_io_internal.h:
Patch Set #9, Line 110: bool read_enabled;
(At some point it may make sense to properly put all these fields into a "read" and "write" substruc […]
There is a later patch that does this.
File src/core/osmo_io_uring.c:
ok, then please mention this fact explicitly in this c ommit in a TODO-comment and also in the commi […]
I added the comments. I think that a counter cannot be used, as we don't know if we get one or two CQEs after cancelling an SQE. We always get the CQE for the cancellation SQE. If an SQE gets completed while sending a cancellation, we get two CQEs.
File src/core/osmo_io_uring.c:
Patch Set #9, Line 126: g_ring = talloc_zero(OTC_GLOBAL, struct osmo_io_uring);
are you sure OTC_GLOBAL is defined at this point? Or is it actually NULL? […]
IT is definitly defined and not NULL.
The contructor in context.c
"static __attribute__((constructor(101))) void on_dso_load_ctx(void)"
has higher priority than any other constructor, including the initialization of osmo_io_uring.
Patch Set #9, Line 175: g_io_uring_size *= 2;
Once you move this to an unsigned, you can do "<< 1" here. […]
Done, see previous patch.
Patch Set #9, Line 208: /* All subsequent read SQEs must be on the same ring. */
This should imho go inside iofd_uring_get_sqe(), based on "current_ring" being passed to it.
iofd_uring_get_sqe() has no knowledge about the iofd, so it doesn't know if there are SQEs already submitted to a different ring than the current one.
(iofd->u.uring.read_ring)
Patch Set #9, Line 282: while (iofd->u.uring.reads_submitted < ((iofd->u.uring.num_read_sqes) ? : g_io_uring_read_sqes)) {
why is the g_io_uring_read_sqes reference needed here? How can iofd have num_read_sqes = 0, and if i […]
g_io_uring_read_sques is 1 by default. This can be changed by environment variable, to allow benchmarking. The user may also define the number of of SQEs via API. This should override the default or what has been set by envrironment variable.
if iofd instance is created, num_read_sqes (read.num_sques now) is not set by the user, so that it is 0.
To view, visit change 40725. To unsubscribe, or for help writing mail filters, visit settings.