Patch "bpf, sockmap: Reschedule is now done through backlog" has been added to the 6.3-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    bpf, sockmap: Reschedule is now done through backlog

to the 6.3-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     bpf-sockmap-reschedule-is-now-done-through-backlog.patch
and it can be found in the queue-6.3 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit 34b36eb5cb79ae033bd3e9ac181ad618073323d3
Author: John Fastabend <john.fastabend@xxxxxxxxx>
Date:   Mon May 22 19:56:07 2023 -0700

    bpf, sockmap: Reschedule is now done through backlog
    
    [ Upstream commit bce22552f92ea7c577f49839b8e8f7d29afaf880 ]
    
    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: bec217197b412 ("skmsg: Schedule psock work if the cached skb exists on the psock")
    Signed-off-by: John Fastabend <john.fastabend@xxxxxxxxx>
    Signed-off-by: Daniel Borkmann <daniel@xxxxxxxxxxxxx>
    Reviewed-by: Jakub Sitnicki <jakub@xxxxxxxxxxxxxx>
    Link: https://lore.kernel.org/bpf/20230523025618.113937-4-john.fastabend@xxxxxxxxx
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/net/core/skmsg.c b/net/core/skmsg.c
index 0a9ee2acac0bb..76ff15f8bb06e 100644
--- a/net/core/skmsg.c
+++ b/net/core/skmsg.c
@@ -481,8 +481,6 @@ int sk_msg_recvmsg(struct sock *sk, struct sk_psock *psock, struct msghdr *msg,
 		msg_rx = sk_psock_peek_msg(psock);
 	}
 out:
-	if (psock->work_state.skb && copied > 0)
-		schedule_delayed_work(&psock->work, 0);
 	return copied;
 }
 EXPORT_SYMBOL_GPL(sk_msg_recvmsg);



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux