summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMartin Karsten <mkarsten@uwaterloo.ca>2024-11-09 06:02:33 +0100
committerJakub Kicinski <kuba@kernel.org>2024-11-12 03:45:06 +0100
commitab5b28b007a7ab3edeb0a5e1d04669945ddb1d37 (patch)
tree8ab6663e36a8387cbff4c2cb466d36711fbd227d
parentnet: Add control functions for irq suspension (diff)
downloadlinux-ab5b28b007a7ab3edeb0a5e1d04669945ddb1d37.tar.xz
linux-ab5b28b007a7ab3edeb0a5e1d04669945ddb1d37.zip
eventpoll: Trigger napi_busy_loop, if prefer_busy_poll is set
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@uwaterloo.ca> Co-developed-by: Joe Damato <jdamato@fastly.com> Signed-off-by: Joe Damato <jdamato@fastly.com> Tested-by: Joe Damato <jdamato@fastly.com> Tested-by: Martin Karsten <mkarsten@uwaterloo.ca> Acked-by: Stanislav Fomichev <sdf@fomichev.me> Reviewed-by: Sridhar Samudrala <sridhar.samudrala@intel.com> Link: https://patch.msgid.link/20241109050245.191288-4-jdamato@fastly.com Signed-off-by: Jakub Kicinski <kuba@kernel.org>
-rw-r--r--fs/eventpoll.c4
1 files changed, 3 insertions, 1 deletions
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)