Hello: This series was applied to bpf/bpf-next.git (master) by Alexei Starovoitov <ast@xxxxxxxxxx>: On Tue, 5 Dec 2023 10:42:38 -0800 you wrote: > Add support to BPF verifier to track and support register spill/fill to/from > stack regardless if it was done through read-only R10 register (which is the > only form supported today), or through a general register after copying R10 > into it, while also potentially modifying offset. > > Once we add register this generic spill/fill support to precision > backtracking, we can take advantage of it to stop doing eager STACK_ZERO > conversion on register spill. Instead we can rely on (im)precision of spilled > const zero register to improve verifier state pruning efficiency. This > situation of using const zero register to initialize stack slots is very > common with __builtin_memset() usage or just zero-initializing variables on > the stack, and it causes unnecessary state duplication, as that STACK_ZERO > knowledge is often not necessary for correctness, as those zero values are > never used in precise context. Thus, relying on register imprecision helps > tremendously, especially in real-world BPF programs. > > [...] Here is the summary with links: - [v4,bpf-next,01/10] bpf: support non-r10 register spill/fill to/from stack in precision tracking https://git.kernel.org/bpf/bpf-next/c/41f6f64e6999 - [v4,bpf-next,02/10] selftests/bpf: add stack access precision test https://git.kernel.org/bpf/bpf-next/c/876301881c43 - [v4,bpf-next,03/10] bpf: fix check for attempt to corrupt spilled pointer https://git.kernel.org/bpf/bpf-next/c/ab125ed3ec1c - [v4,bpf-next,04/10] bpf: preserve STACK_ZERO slots on partial reg spills https://git.kernel.org/bpf/bpf-next/c/eaf18febd6eb - [v4,bpf-next,05/10] selftests/bpf: validate STACK_ZERO is preserved on subreg spill https://git.kernel.org/bpf/bpf-next/c/b33ceb6a3d2e - [v4,bpf-next,06/10] bpf: preserve constant zero when doing partial register restore https://git.kernel.org/bpf/bpf-next/c/e322f0bcb8d3 - [v4,bpf-next,07/10] selftests/bpf: validate zero preservation for sub-slot loads https://git.kernel.org/bpf/bpf-next/c/add1cd7f22e6 - [v4,bpf-next,08/10] bpf: track aligned STACK_ZERO cases as imprecise spilled registers https://git.kernel.org/bpf/bpf-next/c/18a433b62061 - [v4,bpf-next,09/10] selftests/bpf: validate precision logic in partial_stack_load_preserves_zeros https://git.kernel.org/bpf/bpf-next/c/064e0bea19b3 - [v4,bpf-next,10/10] bpf: use common instruction history across all states (no matching commit) You are awesome, thank you! -- Deet-doot-dot, I am a bot. https://korg.docs.kernel.org/patchwork/pwbot.html