mirror of
https://github.com/torvalds/linux.git
synced 2026-11-07 06:17:02 +01:00
io_uring/napi: make stale entries time out after 60s
With dynamic tracking a NAPI id that hasn't been seen for a minute is
meant to be dropped from the list the ring busy polls. The timeout is
added to jiffies, but it is defined as 60 * SEC_CONVERSION, and
SEC_CONVERSION isn't the number of jiffies in a second. It is the
internal factor of __timespec64_to_jiffies(), HZ scaled up by
SEC_JIFFIE_SC bits. For HZ=1000 that is 1000 << 22, which puts the
timeout at about eight years. On 32-bit the multiplication overflows.
So entries are never removed, and every id that a socket of the ring
ever had keeps being polled on each wait.
Fixes: 8d0c12a80c ("io-uring: add napi busy poll support")
Assisted-by: LLM
Signed-off-by: Josef Bacik <josef@toxicpanda.com>
Link: https://patch.msgid.link/20261015-b4-io-uring-fixes-v1-33-c1556f5d7bf5@toxicpanda.com
Signed-off-by: Jens Axboe <axboe@kernel.dk>
This commit is contained in:
parent
83cce67298
commit
9c15164878
|
|
@ -6,7 +6,7 @@
|
|||
#ifdef CONFIG_NET_RX_BUSY_POLL
|
||||
|
||||
/* Timeout for cleanout of stale entries. */
|
||||
#define NAPI_TIMEOUT (60 * SEC_CONVERSION)
|
||||
#define NAPI_TIMEOUT (60 * HZ)
|
||||
|
||||
struct io_napi_entry {
|
||||
unsigned int napi_id;
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user