Re: [5.10, 5.15] New bpf kselftest failure

Luiz Capitulino
2023-07-18T14:40:11Z

On 2023-07-18 10:35, Eduard Zingerman wrote:

>
>
>
> On Tue, 2023-07-18 at 10:06 -0400, Luiz Capitulino wrote:
>>
>> On 2023-07-18 08:31, Eduard Zingerman wrote:
>>
>>>
>>>
>>>
>>> On Tue, 2023-07-18 at 01:57 +0300, Eduard Zingerman wrote:
>>>> [...]
>>>> Still, when I cherry-pick [0,1,2,3] `./test_progs -a setget_sockopt` is failing.
>>>> I'll investigate this failure but don't think I'll finish today.
>>>>
>>>> ---
>>>>
>>>> Alternatively, if the goal is to minimize amount of changes, we can
>>>> disable or modify the 'precise: ST insn causing spi > allocated_stack'.
>>>>
>>>> ---
>>>>
>>>> Commits (in chronological order):
>>>> [0] be2ef8161572 ("bpf: allow precision tracking for programs with subprogs")
>>>> [1] f63181b6ae79 ("bpf: stop setting precise in current state")
>>>> [2] 7a830b53c17b ("bpf: aggressively forget precise markings during state checkpointing")
>>>> [3] 4f999b767769 ("selftests/bpf: make test_align selftest more robust")
>>>> [4] 07d90c72efbe ("Merge branch 'BPF verifier precision tracking improvements'")
>>>> [5] ecdf985d7615 ("bpf: track immediate values written to stack by BPF_ST instruction")
>>>
>>> I made a mistake, while resolving merge conflict for [0] yesterday.
>>> After correction the `./test_progs -a setget_sockopt` passes.
>>> I also noted that the following tests fail on v6.1.36:
>>>
>>> ./test_progs -a sk_assign,fexit_bpf2bpf
>>>
>>> These tests are fixed by back-porting the following upstream commits:
>>> - 7ce878ca81bc ("selftests/bpf: Fix sk_assign on s390x")
>>> - 63d78b7e8ca2 ("selftests/bpf: Workaround verification failure for fexit_bpf2bpf/func_replace_return_code")
>>>
>>> I pushed modified version of v6.1.36 to my github account, it has
>>> test_verifier, test_progs, test_progs-no_alu32 and test_maps passing
>>> (on my x86 setup):
>>>
>>> https://github.com/eddyz87/bpf/commits/v6.1.36-with-fixes
>>>
>>> Do you need any additional actions from my side?
>>
>> First, thank you very much for your work on this and getting the tests
>> passing on 6.1.
>
> Thank you.
>
>> In terms of action items, have you checked this situation in 5.10 and
>> 5.15? For 5.10, we also need 4237e9f4a96228ccc8a7abe5e4b30834323cd353
>> otherwise the bpf tests don't even build there.
>
> Haven't checked 5.15/5.10, will take a look.
> Are there any time-frame limitations?
> (I'd like to work on this on Wednesday or Thursday)

Since, as you explain below, this is not a impactful regression to stable
users, I think that's fine.

>> Also, would you know if something important is broken for users or is
>> this just a small behavior difference between kernels?
>
> I think it's more like small behavior difference:
> - be2ef8161572, f63181b6ae79, 7a830b53c17b are verification
> scalability optimizations, with these patches it is possible
> to load a bit more complex programs (larger programs, or more
> complex branching patterns).
> - 4f999b767769, 7ce878ca81bc, 63d78b7e8ca2 - fixes for selftests,
> no new functionality.

Thanks for clarifying it!

- Luiz

>
> Thanks,
> Eduard