[PATCH bpf] Revert "xsk: Do not sleep in poll() when need_wakeup set"

Subsystems: networking [general], the rest, xdp sockets (af_xdp)

STALE1764d LANDED

Landed in mainline as 0706a78f31c4 on 2021-12-17.

2 messages, 2 authors, 2021-12-17 · open the first message on its own page

[PATCH bpf] Revert "xsk: Do not sleep in poll() when need_wakeup set"

From: Magnus Karlsson <hidden>
Date: 2021-12-17 14:57:27

From: Magnus Karlsson <magnus.karlsson@intel.com>

This reverts commit bd0687c18e635b63233dc87f38058cd728802ab4.

This patch causes a Tx only workload to go to sleep even when it does
not have to, leading to misserable performance in skb mode. It fixed
one rare problem but created a much worse one, so this need to be
reverted while I try to craft a proper solution to the original
problem.

Fixes: bd0687c18e63 ("xsk: Do not sleep in poll() when need_wakeup set")
Signed-off-by: Magnus Karlsson <magnus.karlsson@intel.com>
---
 net/xdp/xsk.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/net/xdp/xsk.c b/net/xdp/xsk.c
index 7a466ea962c5..f16074eb53c7 100644
--- a/net/xdp/xsk.c
+++ b/net/xdp/xsk.c
@@ -677,6 +677,8 @@ static __poll_t xsk_poll(struct file *file, struct socket *sock,
 	struct xdp_sock *xs = xdp_sk(sk);
 	struct xsk_buff_pool *pool;
 
+	sock_poll_wait(file, sock, wait);
+
 	if (unlikely(!xsk_is_bound(xs)))
 		return mask;
 
@@ -688,8 +690,6 @@ static __poll_t xsk_poll(struct file *file, struct socket *sock,
 		else
 			/* Poll needs to drive Tx also in copy mode */
 			__xsk_sendmsg(sk);
-	} else {
-		sock_poll_wait(file, sock, wait);
 	}
 
 	if (xs->rx && !xskq_prod_is_empty(xs->rx))
base-commit: 0c3e2474605581375d808bb3b9ce0927ed3eef70
-- 
2.34.1

Re: [PATCH bpf] Revert "xsk: Do not sleep in poll() when need_wakeup set"

From: patchwork-bot+netdevbpf@kernel.org
Date: 2021-12-17 22:10:26

Hello:

This patch was applied to bpf/bpf.git (master)
by Daniel Borkmann [off-list ref]:

On Fri, 17 Dec 2021 15:56:46 +0100 you wrote:
From: Magnus Karlsson <magnus.karlsson@intel.com>

This reverts commit bd0687c18e635b63233dc87f38058cd728802ab4.

This patch causes a Tx only workload to go to sleep even when it does
not have to, leading to misserable performance in skb mode. It fixed
one rare problem but created a much worse one, so this need to be
reverted while I try to craft a proper solution to the original
problem.

[...]
Here is the summary with links:
  - [bpf] Revert "xsk: Do not sleep in poll() when need_wakeup set"
    https://git.kernel.org/bpf/bpf/c/0706a78f31c4

You are awesome, thank you!
-- 
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html

Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help