Message ID | 20210624160609.292325-1-toke@redhat.com (mailing list archive) |
---|---|
Headers | show |
Series | Clean up and document RCU-based object protection for XDP and TC BPF | expand |
Hello: This series was applied to bpf/bpf-next.git (refs/heads/master): On Thu, 24 Jun 2021 18:05:50 +0200 you wrote: > During the discussion[0] of Hangbin's multicast patch series, Martin pointed out > that the lifetime of the RCU-protected map entries used by XDP_REDIRECT is by > no means obvious. I promised to look into cleaning this up, and Paul helpfully > provided some hints and a new unrcu_pointer() helper to aid in this. > > It seems[1] that back in the early days of XDP, local_bh_disable() did not > provide RCU protection, which is why the rcu_read_lock() calls were added > to drivers in the first place. But according to Paul[2], in recent kernels > a local_bh_disable()/local_bh_enable() pair functions as one big RCU > read-side section, so no further protection is needed. This even applies to > -rt kernels, which has an explicit rcu_read_lock() in place as part of the > local_bh_disable()[3]. > > [...] Here is the summary with links: - [bpf-next,v5,01/19] rcu: Create an unrcu_pointer() to remove __rcu from a pointer https://git.kernel.org/bpf/bpf-next/c/b9964ce74544 - [bpf-next,v5,02/19] doc: Clarify and expand RCU updaters and corresponding readers https://git.kernel.org/bpf/bpf-next/c/9a145c04a293 - [bpf-next,v5,03/19] doc: Give XDP as example of non-obvious RCU reader/updater pairing https://git.kernel.org/bpf/bpf-next/c/e74c74f9e51d - [bpf-next,v5,04/19] bpf: allow RCU-protected lookups to happen from bh context https://git.kernel.org/bpf/bpf-next/c/694cea395fde - [bpf-next,v5,05/19] xdp: add proper __rcu annotations to redirect map entries https://git.kernel.org/bpf/bpf-next/c/782347b6bcad - [bpf-next,v5,06/19] sched: remove unneeded rcu_read_lock() around BPF program invocation https://git.kernel.org/bpf/bpf-next/c/77151ccf1065 - [bpf-next,v5,07/19] ena: remove rcu_read_lock() around XDP program invocation https://git.kernel.org/bpf/bpf-next/c/0939e0537896 - [bpf-next,v5,08/19] bnxt: remove rcu_read_lock() around XDP program invocation https://git.kernel.org/bpf/bpf-next/c/158c1399fc45 - [bpf-next,v5,09/19] thunderx: remove rcu_read_lock() around XDP program invocation https://git.kernel.org/bpf/bpf-next/c/36baafe347a8 - [bpf-next,v5,10/19] freescale: remove rcu_read_lock() around XDP program invocation https://git.kernel.org/bpf/bpf-next/c/547aabcac325 - [bpf-next,v5,11/19] net: intel: remove rcu_read_lock() around XDP program invocation https://git.kernel.org/bpf/bpf-next/c/49589b23d5a9 - [bpf-next,v5,12/19] marvell: remove rcu_read_lock() around XDP program invocation https://git.kernel.org/bpf/bpf-next/c/959ad7ec066d - [bpf-next,v5,13/19] mlx4: remove rcu_read_lock() around XDP program invocation https://git.kernel.org/bpf/bpf-next/c/c4411b371c10 - [bpf-next,v5,14/19] nfp: remove rcu_read_lock() around XDP program invocation https://git.kernel.org/bpf/bpf-next/c/d5789621b658 - [bpf-next,v5,15/19] qede: remove rcu_read_lock() around XDP program invocation https://git.kernel.org/bpf/bpf-next/c/4415db6ca85a - [bpf-next,v5,16/19] sfc: remove rcu_read_lock() around XDP program invocation https://git.kernel.org/bpf/bpf-next/c/4eb14e3fc619 - [bpf-next,v5,17/19] netsec: remove rcu_read_lock() around XDP program invocation https://git.kernel.org/bpf/bpf-next/c/7b6ee873ff20 - [bpf-next,v5,18/19] stmmac: remove rcu_read_lock() around XDP program invocation https://git.kernel.org/bpf/bpf-next/c/2f1e432d339c - [bpf-next,v5,19/19] net: ti: remove rcu_read_lock() around XDP program invocation https://git.kernel.org/bpf/bpf-next/c/0cc84b9a6003 You are awesome, thank you! -- Deet-doot-dot, I am a bot. https://korg.docs.kernel.org/patchwork/pwbot.html