From f71296707914ab6f3a503c4c7485f9d8ae7e8a45 Mon Sep 17 00:00:00 2001 From: Vitaliy Filippov Date: Tue, 1 Feb 2022 02:50:16 +0300 Subject: [PATCH] And one more sqe starvation fix --- src/ringloop.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/ringloop.cpp b/src/ringloop.cpp index 1e39b3576..1060b7b43 100644 --- a/src/ringloop.cpp +++ b/src/ringloop.cpp @@ -118,5 +118,11 @@ int ring_loop_t::sqes_left() struct io_uring_sq *sq = &ring.sq; unsigned int head = io_uring_smp_load_acquire(sq->khead); unsigned int next = sq->sqe_tail + 1; - return *sq->kring_entries - (next - head); + int left = *sq->kring_entries - (next - head); + if (left > free_ring_data_ptr) + { + // return min(sqes left, ring_datas left) + return free_ring_data_ptr; + } + return left; }