Re: [PATCH bpf-next 1/4] xdp: Support specifying expected existing program when attaching XDP

Andrii Nakryiko
2020-03-24T22:31:11Z

On Tue, Mar 24, 2020 at 11:53 AM Jakub Kicinski <kuba@kernel.org> wrote:
>
> On Tue, 24 Mar 2020 11:57:45 +0100 Toke Høiland-Jørgensen wrote:
> > > If everyone is using libbpf, does kernel system (bpf syscall vs
> > > netlink) matter all that much?
> >
> > This argument works the other way as well, though: If libbpf can
> > abstract the subsystem differences and provide a consistent interface to
> > "the BPF world", why does BPF need to impose its own syscall API on the
> > networking subsystem?
>
> Hitting the nail on the head there, again :)
>
> Once upon a time when we were pushing for libbpf focus & unification,
> one of my main motivations was that a solid library that most people
> use give us the ability to provide user space abstractions.

Yes, but bpf_link is not a user-space abstraction only anymore. It
started that way and we quickly realized that we still will need
kernel support. Not everything can be abstracted in user-space only.
So I don't see any contradiction here, that's still libbpf focus.

>
> As much as adding new kernel interfaces "to rule them all" is fun, it
> has a real cost.

We are adding kernel interface regardless of XDP (for cgroups and
tracing, then perf_events, etc). The real point and real cost here is
to not have another duplication of same functionality just for XDP use
case. That's the real cost, not the other way around. Don't know how
to emphasize this further.

And there is very little fun involved from my side, believe it or not...