Re: [PATCH v4 bpf-next 00/10] Complete BPF verifier precision tracking support for register spills

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

 



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






[Index of Archives]     [Linux Samsung SoC]     [Linux Rockchip SoC]     [Linux Actions SoC]     [Linux for Synopsys ARC Processors]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]


  Powered by Linux