RE: [Patch bpf-next v7 04/13] skmsg: avoid lock_sock() in sk_psock_backlog()
From: John Fastabend <john.fastabend@gmail.com>
Date: 2021-03-29 19:42:26
Also in:
bpf
From: John Fastabend <john.fastabend@gmail.com>
Date: 2021-03-29 19:42:26
Also in:
bpf
Cong Wang wrote:
From: Cong Wang <redacted> We do not have to lock the sock to avoid losing sk_socket, instead we can purge all the ingress queues when we close the socket. Sending or receiving packets after orphaning socket makes no sense. We do purge these queues when psock refcnt reaches zero but here we want to purge them explicitly in sock_map_close(). There are also some nasty race conditions on testing bit SK_PSOCK_TX_ENABLED and queuing/canceling the psock work, we can expand psock->ingress_lock a bit to protect them too. As noticed by John, we still have to lock the psock->work, because the same work item could be running concurrently on different CPU's. Cc: John Fastabend <john.fastabend@gmail.com> Cc: Daniel Borkmann <daniel@iogearbox.net> Cc: Jakub Sitnicki <jakub@cloudflare.com> Cc: Lorenz Bauer <redacted> Signed-off-by: Cong Wang <redacted> ---
Acked-by: John Fastabend <john.fastabend@gmail.com>