Re: [PATCH net-next 14/15] net: Reference bpf_redirect_info via task_struct on PREEMPT_RT.

From: Toke Høiland-Jørgensen
Date: Tue May 07 2024 - 09:52:45 EST


Sebastian Andrzej Siewior <bigeasy@xxxxxxxxxxxxx> writes:

>> > +static inline struct bpf_redirect_info *bpf_net_ctx_get_ri(void)
>> > +{
>> > + struct bpf_net_context *bpf_net_ctx = bpf_net_ctx_get();
>> > +
>> > + if (!bpf_net_ctx)
>> > + return NULL;
>>
>> ... do we really need all the NULL checks?
>>
>> (not just here, but in the code below as well).
>>
>> I'm a little concerned that we are introducing a bunch of new branches
>> in the XDP hot path. Which is also why I'm asking for benchmarks :)
>
> We could hide the WARN behind CONFIG_DEBUG_NET. The only purpose is to
> see the backtrace where the context is missing. Having just an error
> somewhere will make it difficult to track.
>
> The NULL check is to avoid a crash if the context is missing. You could
> argue that this should be noticed in development and never hit
> production. If so, then we get the backtrace from NULL-pointer
> dereference and don't need the checks and WARN.

Yup, this (relying on the NULL deref) SGTM :)

-Toke