Skip to content

Commit bce2255

Browse files
jrfastabborkmann
authored andcommitted
bpf, sockmap: Reschedule is now done through backlog
Now that the backlog manages the reschedule() logic correctly we can drop the partial fix to reschedule from recvmsg hook. Rescheduling on recvmsg hook was added to address a corner case where we still had data in the backlog state but had nothing to kick it and reschedule the backlog worker to run and finish copying data out of the state. This had a couple limitations, first it required user space to kick it introducing an unnecessary EBUSY and retry. Second it only handled the ingress case and egress redirects would still be hung. With the correct fix, pushing the reschedule logic down to where the enomem error occurs we can drop this fix. Fixes: bec2171 ("skmsg: Schedule psock work if the cached skb exists on the psock") Signed-off-by: John Fastabend <[email protected]> Signed-off-by: Daniel Borkmann <[email protected]> Reviewed-by: Jakub Sitnicki <[email protected]> Link: https://lore.kernel.org/bpf/[email protected]
1 parent 29173d0 commit bce2255

File tree

1 file changed

+0
-2
lines changed

1 file changed

+0
-2
lines changed

net/core/skmsg.c

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -481,8 +481,6 @@ int sk_msg_recvmsg(struct sock *sk, struct sk_psock *psock, struct msghdr *msg,
481481
msg_rx = sk_psock_peek_msg(psock);
482482
}
483483
out:
484-
if (psock->work_state.skb && copied > 0)
485-
schedule_delayed_work(&psock->work, 0);
486484
return copied;
487485
}
488486
EXPORT_SYMBOL_GPL(sk_msg_recvmsg);

0 commit comments

Comments
 (0)