Skip to content

Commit 32df6fe

Browse files
Alexei Starovoitovborkmann
authored andcommitted
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
1 parent 179a93f commit 32df6fe

File tree

1 file changed

+95
-20
lines changed

1 file changed

+95
-20
lines changed

MAINTAINERS

Lines changed: 95 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -3614,16 +3614,18 @@ S: Maintained
36143614
F: Documentation/devicetree/bindings/iio/accel/bosch,bma400.yaml
36153615
F: drivers/iio/accel/bma400*
36163616

3617-
BPF (Safe dynamic programs and tools)
3617+
BPF [GENERAL] (Safe Dynamic Programs and Tools)
36183618
M: Alexei Starovoitov <[email protected]>
36193619
M: Daniel Borkmann <[email protected]>
36203620
M: Andrii Nakryiko <[email protected]>
3621-
R: Martin KaFai Lau <[email protected]>
3622-
R: Song Liu <[email protected]>
3621+
R: Martin KaFai Lau <[email protected]>
3622+
R: Song Liu <[email protected]>
36233623
R: Yonghong Song <[email protected]>
36243624
R: John Fastabend <[email protected]>
36253625
R: KP Singh <[email protected]>
3626-
3626+
R: Stanislav Fomichev <[email protected]>
3627+
R: Hao Luo <[email protected]>
3628+
R: Jiri Olsa <[email protected]>
36273629
36283630
S: Supported
36293631
W: https://bpf.io/
@@ -3655,12 +3657,9 @@ F: scripts/pahole-version.sh
36553657
F: tools/bpf/
36563658
F: tools/lib/bpf/
36573659
F: tools/testing/selftests/bpf/
3658-
N: bpf
3659-
K: bpf
36603660

36613661
BPF JIT for ARM
36623662
M: Shubham Bansal <[email protected]>
3663-
36643663
36653664
S: Odd Fixes
36663665
F: arch/arm/net/
@@ -3669,46 +3668,40 @@ BPF JIT for ARM64
36693668
M: Daniel Borkmann <[email protected]>
36703669
M: Alexei Starovoitov <[email protected]>
36713670
M: Zi Shen Lim <[email protected]>
3672-
36733671
36743672
S: Supported
36753673
F: arch/arm64/net/
36763674

36773675
BPF JIT for MIPS (32-BIT AND 64-BIT)
36783676
M: Johan Almbladh <[email protected]>
36793677
M: Paul Burton <[email protected]>
3680-
36813678
36823679
S: Maintained
36833680
F: arch/mips/net/
36843681

36853682
BPF JIT for NFP NICs
36863683
M: Jakub Kicinski <[email protected]>
3687-
36883684
36893685
S: Odd Fixes
36903686
F: drivers/net/ethernet/netronome/nfp/bpf/
36913687

36923688
BPF JIT for POWERPC (32-BIT AND 64-BIT)
36933689
M: Naveen N. Rao <[email protected]>
36943690
M: Michael Ellerman <[email protected]>
3695-
36963691
36973692
S: Supported
36983693
F: arch/powerpc/net/
36993694

37003695
BPF JIT for RISC-V (32-bit)
37013696
M: Luke Nelson <[email protected]>
37023697
M: Xi Wang <[email protected]>
3703-
37043698
37053699
S: Maintained
37063700
F: arch/riscv/net/
37073701
X: arch/riscv/net/bpf_jit_comp64.c
37083702

37093703
BPF JIT for RISC-V (64-bit)
37103704
M: Björn Töpel <[email protected]>
3711-
37123705
37133706
S: Maintained
37143707
F: arch/riscv/net/
@@ -3718,36 +3711,80 @@ BPF JIT for S390
37183711
M: Ilya Leoshkevich <[email protected]>
37193712
M: Heiko Carstens <[email protected]>
37203713
M: Vasily Gorbik <[email protected]>
3721-
37223714
37233715
S: Supported
37243716
F: arch/s390/net/
37253717
X: arch/s390/net/pnet.c
37263718

37273719
BPF JIT for SPARC (32-BIT AND 64-BIT)
37283720
M: David S. Miller <[email protected]>
3729-
37303721
37313722
S: Odd Fixes
37323723
F: arch/sparc/net/
37333724

37343725
BPF JIT for X86 32-BIT
37353726
M: Wang YanQing <[email protected]>
3736-
37373727
37383728
S: Odd Fixes
37393729
F: arch/x86/net/bpf_jit_comp32.c
37403730

37413731
BPF JIT for X86 64-BIT
37423732
M: Alexei Starovoitov <[email protected]>
37433733
M: Daniel Borkmann <[email protected]>
3744-
37453734
37463735
S: Supported
37473736
F: arch/x86/net/
37483737
X: arch/x86/net/bpf_jit_comp32.c
37493738

3750-
BPF LSM (Security Audit and Enforcement using BPF)
3739+
BPF [CORE]
3740+
M: Alexei Starovoitov <[email protected]>
3741+
M: Daniel Borkmann <[email protected]>
3742+
R: John Fastabend <[email protected]>
3743+
3744+
S: Maintained
3745+
F: kernel/bpf/verifier.c
3746+
F: kernel/bpf/tnum.c
3747+
F: kernel/bpf/core.c
3748+
F: kernel/bpf/syscall.c
3749+
F: kernel/bpf/dispatcher.c
3750+
F: kernel/bpf/trampoline.c
3751+
F: include/linux/bpf*
3752+
F: include/linux/filter.h
3753+
3754+
BPF [BTF]
3755+
M: Martin KaFai Lau <[email protected]>
3756+
3757+
S: Maintained
3758+
F: kernel/bpf/btf.c
3759+
F: include/linux/btf*
3760+
3761+
BPF [TRACING]
3762+
M: Song Liu <[email protected]>
3763+
R: Jiri Olsa <[email protected]>
3764+
3765+
S: Maintained
3766+
F: kernel/trace/bpf_trace.c
3767+
F: kernel/bpf/stackmap.c
3768+
3769+
BPF [NETWORKING] (tc BPF, sock_addr)
3770+
M: Martin KaFai Lau <[email protected]>
3771+
M: Daniel Borkmann <[email protected]>
3772+
R: John Fastabend <[email protected]>
3773+
3774+
3775+
S: Maintained
3776+
F: net/core/filter.c
3777+
F: net/sched/act_bpf.c
3778+
F: net/sched/cls_bpf.c
3779+
3780+
BPF [NETWORKING] (struct_ops, reuseport)
3781+
M: Martin KaFai Lau <[email protected]>
3782+
3783+
3784+
S: Maintained
3785+
F: kernel/bpf/bpf_struct*
3786+
3787+
BPF [SECURITY & LSM] (Security Audit and Enforcement using BPF)
37513788
M: KP Singh <[email protected]>
37523789
R: Florent Revest <[email protected]>
37533790
R: Brendan Jackman <[email protected]>
@@ -3758,7 +3795,27 @@ F: include/linux/bpf_lsm.h
37583795
F: kernel/bpf/bpf_lsm.c
37593796
F: security/bpf/
37603797

3761-
BPF L7 FRAMEWORK
3798+
BPF [STORAGE & CGROUPS]
3799+
M: Martin KaFai Lau <[email protected]>
3800+
3801+
S: Maintained
3802+
F: kernel/bpf/cgroup.c
3803+
F: kernel/bpf/*storage.c
3804+
F: kernel/bpf/bpf_lru*
3805+
3806+
BPF [RINGBUF]
3807+
M: Andrii Nakryiko <[email protected]>
3808+
3809+
S: Maintained
3810+
F: kernel/bpf/ringbuf.c
3811+
3812+
BPF [ITERATOR]
3813+
M: Yonghong Song <[email protected]>
3814+
3815+
S: Maintained
3816+
F: kernel/bpf/*iter.c
3817+
3818+
BPF [L7 FRAMEWORK] (sockmap)
37623819
M: John Fastabend <[email protected]>
37633820
M: Jakub Sitnicki <[email protected]>
37643821
@@ -3771,13 +3828,31 @@ F: net/ipv4/tcp_bpf.c
37713828
F: net/ipv4/udp_bpf.c
37723829
F: net/unix/unix_bpf.c
37733830

3774-
BPFTOOL
3831+
BPF [LIBRARY] (libbpf)
3832+
M: Andrii Nakryiko <[email protected]>
3833+
3834+
S: Maintained
3835+
F: tools/lib/bpf/
3836+
3837+
BPF [TOOLING] (bpftool)
37753838
M: Quentin Monnet <[email protected]>
37763839
37773840
S: Maintained
37783841
F: kernel/bpf/disasm.*
37793842
F: tools/bpf/bpftool/
37803843

3844+
BPF [SELFTESTS] (Test Runners & Infrastructure)
3845+
M: Andrii Nakryiko <[email protected]>
3846+
R: Mykola Lysenko <[email protected]>
3847+
3848+
S: Maintained
3849+
F: tools/testing/selftests/bpf/
3850+
3851+
BPF [MISC]
3852+
3853+
S: Odd Fixes
3854+
K: (?:\b|_)bpf(?:\b|_)
3855+
37813856
BROADCOM B44 10/100 ETHERNET DRIVER
37823857
M: Michael Chan <[email protected]>
37833858

0 commit comments

Comments
 (0)