forked from luck/tmp_suning_uos_patched
io_uring: remove unnecessary barrier before reading cq head
The memory operations before reading cq head are unrelated and we don't care about their order. Document that the control dependency in combination with READ_ONCE and WRITE_ONCE forms a barrier we need. Signed-off-by: Stefan Bühler <source@stbuehler.de> Signed-off-by: Jens Axboe <axboe@kernel.dk>
This commit is contained in:
parent
4f7067c3fb
commit
115e12e58d
|
@ -431,8 +431,11 @@ static struct io_uring_cqe *io_get_cqring(struct io_ring_ctx *ctx)
|
|||
unsigned tail;
|
||||
|
||||
tail = ctx->cached_cq_tail;
|
||||
/* See comment at the top of the file */
|
||||
smp_rmb();
|
||||
/*
|
||||
* writes to the cq entry need to come after reading head; the
|
||||
* control dependency is enough as we're using WRITE_ONCE to
|
||||
* fill the cq entry
|
||||
*/
|
||||
if (tail - READ_ONCE(ring->r.head) == ring->ring_entries)
|
||||
return NULL;
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user