Subject: Re: [xdp-hints] Re: [PATCH bpf-next V2] xdp: bpf_xdp_metadata use NODEV for no device support

From: Toke Høiland-Jørgensen <[email-masked]>
Date: Fri, 17 Feb 2023 21:49:19 +0100

Stanislav Fomichev <[email-masked]> writes:

> On Fri, Feb 17, 2023 at 9:55 AM Martin KaFai Lau <[email-masked]> wrote:
>>
>> On 2/17/23 9:40 AM, Stanislav Fomichev wrote:
>> > On Fri, Feb 17, 2023 at 9:39 AM Martin KaFai Lau <[email-masked]> wrote:
>> >>
>> >> On 2/17/23 9:32 AM, Stanislav Fomichev wrote:
>> >>> On 02/17, Jesper Dangaard Brouer wrote:
>> >>>> With our XDP-hints kfunc approach, where individual drivers overload the
>> >>>> default implementation, it can be hard for API users to determine
>> >>>> whether or not the current device driver have this kfunc available.
>> >>>
>> >>>> Change the default implementations to use an errno (ENODEV), that
>> >>>> drivers shouldn't return, to make it possible for BPF runtime to
>> >>>> determine if bpf kfunc for xdp metadata isn't implemented by driver.
>> >>>
>> >>>> This is intended to ease supporting and troubleshooting setups. E.g.
>> >>>> when users on mailing list report -19 (ENODEV) as an error, then we can
>> >>>> immediately tell them their device driver is too old.
>> >>>
>> >>> I agree with the v1 comments that I'm not sure how it helps.
>> >>> Why can't we update the doc in the same fashion and say that
>> >>> the drivers shouldn't return EOPNOTSUPP?
>> >>>
>> >>> I'm fine with the change if you think it makes your/users life
>> >>> easier. Although I don't really understand how. We can, as Toke
>> >>> mentioned, ask the users to provide jited program dump if it's
>> >>> mostly about user reports.
>> >>
>> >> and there is xdp-features also.
>> >
>> > Yeah, I was going to suggest it, but then I wasn't sure how to
>> > reconcile our 'kfunc is not a uapi' with xdp-features (that probably
>> > is a uapi)?
>>
>> uapi concern is a bit in xdp-features may go away because the kfunc may go away ?
>
> Yeah, if it's another kind of bitmask we'd have to retain those bits
> (in case of a particular kfunc ever going away)..
>
>> May be a list of xdp kfunc names that it supports? A list of kfunc btf id will
>> do also and the user space will need to map it back. Not sure if it is easily
>> doable in xdp-features.
>
> Good point. A string list / btf_id list of kfuncs implemented by
> netdev might be a good alternative.

Yup, Lorenzo and I discussed something similar at one point, I think
having this as part of the feature thing would be useful!

-Toke