Re: [PATCH bpf-next v3 5/9] selftests/bpf: Add kfunc __arena and __arena_nullable argument tests

"Kumar Kartikeya Dwivedi" <[email protected]> Tue, 04 Aug 2026 22:28:00 +0200
Newsgroups org.kernel.vger.bpf
Message-ID <[email protected]>
On Tue Aug 4, 2026 at 10:26 PM CEST, Eduard Zingerman wrote:
> On Tue, 2026-08-04 at 13:24 -0700, Eduard Zingerman wrote:
>> On Tue, 2026-08-04 at 22:14 +0200, Kumar Kartikeya Dwivedi wrote:
>>
>> ...
>>
>> > > Which leads to several conclusions:
>> > > - We should reach a consensus regarding KF_ARENA* usage, as these
>> > >   kfuncs would clearly benefit from having __arena annotations on
>> > >   parameters (on the BPF side, on the host side these should be
>> > >   declared as plain pointers).
>> >
>> > Yes, but even if we do, for the time begin, we won't have support for
>> > automatically emitting it until resolve_btfids changes are done. That said, I
>> > can manually add the annotation for now.
>>
>> We can fast-track resolve_btfids.
>>
>> > > - In patch #1, it appears that there is no need to allow PTR_TO_ARENA
>> > >   for parameters passed to such a function. At-least I don't see a C
>> > >   code not involving manual casts that would require such support.
>> >
>> > This one I don't understand. Why wouldn't we get PTR_TO_ARENA typed paramters as
>> > arguments?
>>
>> `(u64 *)val` is translated as an address space cast instruction.
>> This instruction yields PTR_TO_ARENA. Except for explicit casts,
>> how else can you pass PTR_TO_ARENA to such a function?
>
> For example, `foo->ptr` yields a scalar from the verifier point of view.
>

Sure, but I don't think we should reject the case where someone does explicit
cast. See e.g. the global function __arena tag, which also accepts both cases.

>>
>> ...