On Fri, Feb 17, 2023 at 9:55 AM Martin KaFai Lau <martin.lau@xxxxxxxxx> wrote: > > On 2/17/23 9:40 AM, Stanislav Fomichev wrote: > > On Fri, Feb 17, 2023 at 9:39 AM Martin KaFai Lau <martin.lau@xxxxxxxxx> 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.