t/io_uring: only set IORING_ENTER_GETEVENTS when actively reaping
authorJens Axboe <axboe@kernel.dk>
Fri, 11 Jan 2019 21:40:16 +0000 (14:40 -0700)
committerJens Axboe <axboe@kernel.dk>
Fri, 11 Jan 2019 21:40:16 +0000 (14:40 -0700)
Don't set it if we don't need to find an event (to_wait == 0).

Signed-off-by: Jens Axboe <axboe@kernel.dk>
t/io_uring.c

index 595e6f2059d71721bf1b0ed83c18b9560e52a264..d4160c3d82aca651434391f8fa597257cdfcff57 100644 (file)
@@ -300,8 +300,11 @@ submit:
                 * poll, or if IORING_SQ_NEED_WAKEUP is set.
                 */
                if (!sq_thread_poll || (*ring->flags & IORING_SQ_NEED_WAKEUP)) {
-                       ret = io_uring_enter(s, to_submit, to_wait,
-                                               IORING_ENTER_GETEVENTS);
+                       unsigned flags = 0;
+
+                       if (to_wait)
+                               flags = IORING_ENTER_GETEVENTS;
+                       ret = io_uring_enter(s, to_submit, to_wait, flags);
                        s->calls++;
                }