aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexei Starovoitov <[email protected]>2022-06-27 20:22:55 +0200
committerDaniel Borkmann <[email protected]>2022-06-28 18:51:44 +0200
commit32df6fe110c443763d6749a758f33a7117ec1270 (patch)
treef7f17bea8ae78b259973cd1869ec647533b25c5d
parent179a93f74b29d0f37871d7afe826292cda90f113 (diff)
bpf, docs: Better scale maintenance of BPF subsystem
The BPF subsystem consists of a large number of pieces. There is not a single person that understands it all. Yet reviews are crucially important for the BPF community to provide productive quality feedback to contributors in a timely manner and therefore to ultimately expand the number of active developers in the community. So far, the BPF community had a two-stage review system, that is, a weekly rotation among 7 developers (Alexei, Daniel, Andrii, Martin, Song, Yonghong, John) as a first-level review of all inbound patches accompanied by a BPF CI system which runs the in-tree BPF selftests to check for regressions for every new patch, and then, a final check by Alexei, Daniel, Andrii to apply the patches to either bpf or bpf-next trees. This system worked well for the last ~3.5 years, but clearly reaches its limits these days as it does not scale enough. Especially, as we also need to allow enough room for every developer to contribute patches themselves, integrate with their day to day job, and in particular avoid burnout. We want to better scale both horizontally and vertically going forward. On the horizontal scale, we are adding more developers (KP, Stan, Hao, Jiri) to the overall core reviewer team, thus growing to 11 people in total. The weekly rotation for the horizontal oncall reviewer is shortened to 1/2 week (Mo - Wed and Thur - Fri). Instead of just patches, the coverage however extends also generally to triage and reply to mailing list traffic (e.g. RFCs, questions, etc). On the vertical scale, there is clearly a need for deep expertise areas to assign dedicated maintainer/reviewer teams that are responsible for code reviews and help with design of individual building blocks. To some degree we have been doing this implicitly, but the point is to formalize the teams and commitment. There is an overlap between areas and boundaries are intentionally grey. These additional entries provide a guidance on who has to look at the patches. The patch series which span multiple areas will be looked at by multiple people. The vertical review with areas of deep expertise are bundled at the same time with the horizontal side. This patch cleans up a bit the BPF entries, adds mentioned developers to the horizontal scale and creates new sub-entries with teams for developers committing to the above outlined vertical scale. Also, pw.git tools we use for BPF tree maintenance have been updated with a new pw-schedule script to semi-automate vertical oncall review rotation. Signed-off-by: Andrii Nakryiko <[email protected]> Signed-off-by: Alexei Starovoitov <[email protected]> Signed-off-by: Daniel Borkmann <[email protected]> Acked-by: Martin KaFai Lau <[email protected]> Acked-by: Song Liu <[email protected]> Acked-by: Yonghong Song <[email protected]> Acked-by: Mykola Lysenko <[email protected]> Acked-by: John Fastabend <[email protected]> Acked-by: Jiri Olsa <[email protected]> Acked-by: KP Singh <[email protected]> Acked-by: Stanislav Fomichev <[email protected]> Acked-by: Hao Luo <[email protected]> Acked-by: Quentin Monnet <[email protected]> Link: https://git.kernel.org/pub/scm/linux/kernel/git/dborkman/pw.git Link: https://lore.kernel.org/bpf/5bdc73e7f5a087299589944fa074563cdf2c2c1a.1656353995.git.daniel@iogearbox.net
-rw-r--r--MAINTAINERS115
1 files changed, 95 insertions, 20 deletions
diff --git a/MAINTAINERS b/MAINTAINERS
index 15a2341936ea..ade0a42411e4 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -3614,16 +3614,18 @@ S: Maintained
F: Documentation/devicetree/bindings/iio/accel/bosch,bma400.yaml
F: drivers/iio/accel/bma400*
-BPF (Safe dynamic programs and tools)
+BPF [GENERAL] (Safe Dynamic Programs and Tools)
M: Alexei Starovoitov <[email protected]>
M: Daniel Borkmann <[email protected]>
M: Andrii Nakryiko <[email protected]>
-R: Martin KaFai Lau <[email protected]>
-R: Song Liu <[email protected]>
+R: Martin KaFai Lau <[email protected]>
+R: Song Liu <[email protected]>
R: Yonghong Song <[email protected]>
R: John Fastabend <[email protected]>
R: KP Singh <[email protected]>
+R: Stanislav Fomichev <[email protected]>
+R: Hao Luo <[email protected]>
+R: Jiri Olsa <[email protected]>
S: Supported
W: https://bpf.io/
@@ -3655,12 +3657,9 @@ F: scripts/pahole-version.sh
F: tools/bpf/
F: tools/lib/bpf/
F: tools/testing/selftests/bpf/
-N: bpf
-K: bpf
BPF JIT for ARM
M: Shubham Bansal <[email protected]>
S: Odd Fixes
F: arch/arm/net/
@@ -3669,7 +3668,6 @@ BPF JIT for ARM64
M: Daniel Borkmann <[email protected]>
M: Alexei Starovoitov <[email protected]>
M: Zi Shen Lim <[email protected]>
S: Supported
F: arch/arm64/net/
@@ -3677,14 +3675,12 @@ F: arch/arm64/net/
BPF JIT for MIPS (32-BIT AND 64-BIT)
M: Johan Almbladh <[email protected]>
M: Paul Burton <[email protected]>
S: Maintained
F: arch/mips/net/
BPF JIT for NFP NICs
M: Jakub Kicinski <[email protected]>
S: Odd Fixes
F: drivers/net/ethernet/netronome/nfp/bpf/
@@ -3692,7 +3688,6 @@ F: drivers/net/ethernet/netronome/nfp/bpf/
BPF JIT for POWERPC (32-BIT AND 64-BIT)
M: Naveen N. Rao <[email protected]>
M: Michael Ellerman <[email protected]>
S: Supported
F: arch/powerpc/net/
@@ -3700,7 +3695,6 @@ F: arch/powerpc/net/
BPF JIT for RISC-V (32-bit)
M: Luke Nelson <[email protected]>
M: Xi Wang <[email protected]>
S: Maintained
F: arch/riscv/net/
@@ -3708,7 +3702,6 @@ X: arch/riscv/net/bpf_jit_comp64.c
BPF JIT for RISC-V (64-bit)
M: Björn Töpel <[email protected]>
S: Maintained
F: arch/riscv/net/
@@ -3718,7 +3711,6 @@ BPF JIT for S390
M: Ilya Leoshkevich <[email protected]>
M: Heiko Carstens <[email protected]>
M: Vasily Gorbik <[email protected]>
S: Supported
F: arch/s390/net/
@@ -3726,14 +3718,12 @@ X: arch/s390/net/pnet.c
BPF JIT for SPARC (32-BIT AND 64-BIT)
M: David S. Miller <[email protected]>
S: Odd Fixes
F: arch/sparc/net/
BPF JIT for X86 32-BIT
M: Wang YanQing <[email protected]>
S: Odd Fixes
F: arch/x86/net/bpf_jit_comp32.c
@@ -3741,13 +3731,60 @@ F: arch/x86/net/bpf_jit_comp32.c
BPF JIT for X86 64-BIT
M: Alexei Starovoitov <[email protected]>
M: Daniel Borkmann <[email protected]>
S: Supported
F: arch/x86/net/
X: arch/x86/net/bpf_jit_comp32.c
-BPF LSM (Security Audit and Enforcement using BPF)
+BPF [CORE]
+M: Alexei Starovoitov <[email protected]>
+M: Daniel Borkmann <[email protected]>
+R: John Fastabend <[email protected]>
+S: Maintained
+F: kernel/bpf/verifier.c
+F: kernel/bpf/tnum.c
+F: kernel/bpf/core.c
+F: kernel/bpf/syscall.c
+F: kernel/bpf/dispatcher.c
+F: kernel/bpf/trampoline.c
+F: include/linux/bpf*
+F: include/linux/filter.h
+
+BPF [BTF]
+M: Martin KaFai Lau <[email protected]>
+S: Maintained
+F: kernel/bpf/btf.c
+F: include/linux/btf*
+
+BPF [TRACING]
+M: Song Liu <[email protected]>
+R: Jiri Olsa <[email protected]>
+S: Maintained
+F: kernel/trace/bpf_trace.c
+F: kernel/bpf/stackmap.c
+
+BPF [NETWORKING] (tc BPF, sock_addr)
+M: Martin KaFai Lau <[email protected]>
+M: Daniel Borkmann <[email protected]>
+R: John Fastabend <[email protected]>
+S: Maintained
+F: net/core/filter.c
+F: net/sched/act_bpf.c
+F: net/sched/cls_bpf.c
+
+BPF [NETWORKING] (struct_ops, reuseport)
+M: Martin KaFai Lau <[email protected]>
+S: Maintained
+F: kernel/bpf/bpf_struct*
+
+BPF [SECURITY & LSM] (Security Audit and Enforcement using BPF)
M: KP Singh <[email protected]>
R: Florent Revest <[email protected]>
R: Brendan Jackman <[email protected]>
@@ -3758,7 +3795,27 @@ F: include/linux/bpf_lsm.h
F: kernel/bpf/bpf_lsm.c
F: security/bpf/
-BPF L7 FRAMEWORK
+BPF [STORAGE & CGROUPS]
+M: Martin KaFai Lau <[email protected]>
+S: Maintained
+F: kernel/bpf/cgroup.c
+F: kernel/bpf/*storage.c
+F: kernel/bpf/bpf_lru*
+
+BPF [RINGBUF]
+M: Andrii Nakryiko <[email protected]>
+S: Maintained
+F: kernel/bpf/ringbuf.c
+
+BPF [ITERATOR]
+M: Yonghong Song <[email protected]>
+S: Maintained
+F: kernel/bpf/*iter.c
+
+BPF [L7 FRAMEWORK] (sockmap)
M: John Fastabend <[email protected]>
M: Jakub Sitnicki <[email protected]>
@@ -3771,13 +3828,31 @@ F: net/ipv4/tcp_bpf.c
F: net/ipv4/udp_bpf.c
F: net/unix/unix_bpf.c
-BPFTOOL
+BPF [LIBRARY] (libbpf)
+M: Andrii Nakryiko <[email protected]>
+S: Maintained
+F: tools/lib/bpf/
+
+BPF [TOOLING] (bpftool)
M: Quentin Monnet <[email protected]>
S: Maintained
F: kernel/bpf/disasm.*
F: tools/bpf/bpftool/
+BPF [SELFTESTS] (Test Runners & Infrastructure)
+M: Andrii Nakryiko <[email protected]>
+R: Mykola Lysenko <[email protected]>
+S: Maintained
+F: tools/testing/selftests/bpf/
+
+BPF [MISC]
+S: Odd Fixes
+K: (?:\b|_)bpf(?:\b|_)
+
BROADCOM B44 10/100 ETHERNET DRIVER
M: Michael Chan <[email protected]>