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

From: Martin KaFai Lau <[email-masked]>
Date: Fri, 17 Feb 2023 09:55:30 -0800

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 ?

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.