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. >> >> ...