]> www.infradead.org Git - users/willy/xarray.git/commitdiff
io_uring: keep multishot request NAPI timeout current
authorOlivier Langlois <olivier@trillion01.com>
Mon, 29 Jul 2024 23:03:33 +0000 (19:03 -0400)
committerJens Axboe <axboe@kernel.dk>
Tue, 30 Jul 2024 12:18:58 +0000 (06:18 -0600)
This refresh statement was originally present in the original patch:
https://lore.kernel.org/netdev/20221121191437.996297-2-shr@devkernel.io/

It has been removed with no explanation in v6:
https://lore.kernel.org/netdev/20230201222254.744422-2-shr@devkernel.io/

It is important to make the refresh for multishot requests, because if no
new requests using the same NAPI device are added to the ring, the entry
will become stale and be removed silently. The unsuspecting user will
not know that their ring had busy polling for only 60 seconds before
being pruned.

Signed-off-by: Olivier Langlois <olivier@trillion01.com>
Reviewed-by: Pavel Begunkov <asml.silence@gmail.com>
Fixes: 8d0c12a80cdeb ("io-uring: add napi busy poll support")
Cc: stable@vger.kernel.org
Link: https://lore.kernel.org/r/0fe61a019ec61e5708cd117cb42ed0dab95e1617.1722294646.git.olivier@trillion01.com
Signed-off-by: Jens Axboe <axboe@kernel.dk>
io_uring/poll.c

index 0a8e02944689faf2aac44ac74fd82118021a2a97..1f63b60e85e7c07a20e86441b5bd0ea8d7dcf016 100644 (file)
@@ -347,6 +347,7 @@ static int io_poll_check_events(struct io_kiocb *req, struct io_tw_state *ts)
                v &= IO_POLL_REF_MASK;
        } while (atomic_sub_return(v, &req->poll_refs) & IO_POLL_REF_MASK);
 
+       io_napi_add(req);
        return IOU_POLL_NO_ACTION;
 }