Re: [5.10, 5.15] New bpf kselftest failure

Eduard Zingerman
2023-07-17T19:14:38Z

On Mon, 2023-07-17 at 10:59 -0400, Luiz Capitulino wrote:
>
> On 2023-07-17 10:55, Eduard Zingerman wrote:
>
> >
> >
> >
> > On Mon, 2023-07-17 at 09:04 -0400, Luiz Capitulino wrote:
> > > Hi,
> > >
> > > The upstream commit below is backported to 5.10.186, 5.15.120 and 6.1.36:
> > >
> > > """
> > > commit ecdf985d7615356b78241fdb159c091830ed0380
> > > Author: Eduard Zingerman <eddyz87@gmail.com>
> > > Date: Wed Feb 15 01:20:27 2023 +0200
> > >
> > > bpf: track immediate values written to stack by BPF_ST instruction
> > > """
> > >
> > > This commit is causing the following bpf:test_verifier kselftest to fail:
> > >
> > > """
> > > # #760/p precise: ST insn causing spi > allocated_stack FAIL
> > > """
> > >
> >
> > I can reproduce the error on 6.1.36 but don't understand what's causing it yet.
> > The log is suspiciously different from master, will comment later today.
>
> Thank you very much for the prompt reply, Eduard.
>
> I'm available for further testing if needed.

A few observations:
- this is not a bug, precision tracking works a bit differently;
- the patches [1] and [2] (or just [1] but with a minor conflict)
are sufficient to make behavior similar to master.

I will provided a more detailed explanation in 1-2hr, sorry.

[1] f63181b6ae79 ("bpf: stop setting precise in current state")
[2] 7a830b53c17b ("bpf: aggressively forget precise markings during state checkpointing")

>
> - Luiz
>
> >
> > > Since this test didn't fail before ecdf985d76 backport, the question is
> > > if this is a test bug or if this commit introduced a regression.
> > >
> > > I haven't checked if this failure is present in latest Linus tree because
> > > I was unable to build & run the bpf kselftests in an older distro.
> > >
> > > Also, there some important details about running the bpf kselftests
> > > in 5.10 and 5.15:
> > >
> > > * On 5.10, bpf kselftest build is broken. The following upstream
> > > commit needs to be cherry-picked for it to build & run:
> > >
> > > """
> > > commit 4237e9f4a96228ccc8a7abe5e4b30834323cd353
> > > Author: Gilad Reti <gilad.reti@gmail.com>
> > > Date: Wed Jan 13 07:38:08 2021 +0200
> > >
> > > selftests/bpf: Add verifier test for PTR_TO_MEM spill
> > > """
> > >
> > > * On 5.15.120 there's one additional test that's failing, but I didn't
> > > debug this one:
> > >
> > > """
> > > #150/p calls: trigger reg2btf_ids[reg→type] for reg→type > __BPF_REG_TYPE_MAX FAIL
> > > FAIL
> > > """
> > >
> > > * On 5.11 onwards, building and running bpf tests is disabled by
> > > default by commit 7a6eb7c34a78498742b5f82543b7a68c1c443329, so I wonder
> > > if we want to backport this to 5.10 as well?
> > >
> > > Thanks!
> > >
> > > - Luiz
> > >
> >