[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20241109050245.191288-4-jdamato@fastly.com>
Date: Sat, 9 Nov 2024 05:02:33 +0000
From: Joe Damato <jdamato@...tly.com>
To: netdev@...r.kernel.org
Cc: corbet@....net,
hdanton@...a.com,
bagasdotme@...il.com,
pabeni@...hat.com,
namangulati@...gle.com,
edumazet@...gle.com,
amritha.nambiar@...el.com,
sridhar.samudrala@...el.com,
sdf@...ichev.me,
peter@...eblog.net,
m2shafiei@...terloo.ca,
bjorn@...osinc.com,
hch@...radead.org,
willy@...radead.org,
willemdebruijn.kernel@...il.com,
skhawaja@...gle.com,
kuba@...nel.org,
Martin Karsten <mkarsten@...terloo.ca>,
Joe Damato <jdamato@...tly.com>,
Alexander Viro <viro@...iv.linux.org.uk>,
Christian Brauner <brauner@...nel.org>,
Jan Kara <jack@...e.cz>,
linux-fsdevel@...r.kernel.org (open list:FILESYSTEMS (VFS and infrastructure)),
linux-kernel@...r.kernel.org (open list)
Subject: [PATCH net-next v9 3/6] eventpoll: Trigger napi_busy_loop, if prefer_busy_poll is set
From: Martin Karsten <mkarsten@...terloo.ca>
Setting prefer_busy_poll now leads to an effectively nonblocking
iteration though napi_busy_loop, even when busy_poll_usecs is 0.
Signed-off-by: Martin Karsten <mkarsten@...terloo.ca>
Co-developed-by: Joe Damato <jdamato@...tly.com>
Signed-off-by: Joe Damato <jdamato@...tly.com>
Tested-by: Joe Damato <jdamato@...tly.com>
Tested-by: Martin Karsten <mkarsten@...terloo.ca>
Acked-by: Stanislav Fomichev <sdf@...ichev.me>
Reviewed-by: Sridhar Samudrala <sridhar.samudrala@...el.com>
---
v1 -> v2:
- Rebased to apply now that commit b9ca079dd6b0 ("eventpoll: Annotate
data-race of busy_poll_usecs") has been picked up from VFS.
fs/eventpoll.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/fs/eventpoll.c b/fs/eventpoll.c
index 1ae4542f0bd8..f9e0d9307dad 100644
--- a/fs/eventpoll.c
+++ b/fs/eventpoll.c
@@ -420,7 +420,9 @@ static bool busy_loop_ep_timeout(unsigned long start_time,
static bool ep_busy_loop_on(struct eventpoll *ep)
{
- return !!READ_ONCE(ep->busy_poll_usecs) || net_busy_loop_on();
+ return !!READ_ONCE(ep->busy_poll_usecs) ||
+ READ_ONCE(ep->prefer_busy_poll) ||
+ net_busy_loop_on();
}
static bool ep_busy_loop_end(void *p, unsigned long start_time)
--
2.25.1
Powered by blists - more mailing lists