Message ID | 20211217145646.26449-1-magnus.karlsson@gmail.com (mailing list archive) |
---|---|
State | Accepted |
Commit | 0706a78f31c4217ca144f630063ec9561a21548d |
Delegated to: | BPF |
Headers | show |
Series | [bpf] Revert "xsk: Do not sleep in poll() when need_wakeup set" | expand |
Hello: This patch was applied to bpf/bpf.git (master) by Daniel Borkmann <daniel@iogearbox.net>: 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!
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))