io_uring: fix overflow resched cqe reordering
authorPavel Begunkov <asml.silence@gmail.com>
Sat, 17 May 2025 12:27:37 +0000 (13:27 +0100)
committerJens Axboe <axboe@kernel.dk>
Wed, 21 May 2025 13:01:54 +0000 (07:01 -0600)
commita7d755ed9ce9738af3db602eb29d32774a180bc7
tree47ca9fffb10a08a744a4ac760b5e7343f947a6c3
parentf1774d9d4e104639a9122bde3b1fe58a0c0dcde7
io_uring: fix overflow resched cqe reordering

Leaving the CQ critical section in the middle of a overflow flushing
can cause cqe reordering since the cache cq pointers are reset and any
new cqe emitters that might get called in between are not going to be
forced into io_cqe_cache_refill().

Fixes: eac2ca2d682f9 ("io_uring: check if we need to reschedule during overflow flush")
Signed-off-by: Pavel Begunkov <asml.silence@gmail.com>
Link: https://lore.kernel.org/r/90ba817f1a458f091f355f407de1c911d2b93bbf.1747483784.git.asml.silence@gmail.com
Signed-off-by: Jens Axboe <axboe@kernel.dk>
io_uring/io_uring.c