On 5/19/21 6:38 PM, Andrii Nakryiko wrote: > On Wed, May 19, 2021 at 7:14 AM Pavel Begunkov <asml.silence@xxxxxxxxx> wrote: >> >> Signed-off-by: Pavel Begunkov <asml.silence@xxxxxxxxx> >> --- >> tools/lib/bpf/libbpf.c | 7 +++++++ >> 1 file changed, 7 insertions(+) >> >> diff --git a/tools/lib/bpf/libbpf.c b/tools/lib/bpf/libbpf.c >> index 4181d178ee7b..de5d1508f58e 100644 >> --- a/tools/lib/bpf/libbpf.c >> +++ b/tools/lib/bpf/libbpf.c >> @@ -13,6 +13,10 @@ >> #ifndef _GNU_SOURCE >> #define _GNU_SOURCE >> #endif >> + >> +/* hack, use local headers instead of system-wide */ >> +#include "../../../include/uapi/linux/bpf.h" >> + > > libbpf is already using the latest UAPI headers, so you don't need > this hack. You just haven't synced include/uapi/linux/bpf.h into > tools/include/uapi/linux/bpf.h It's more convenient to keep it local to me while RFC, surely will drop it later. btw, I had a problem with find_sec_def() successfully matching "iouring.s" string with "iouring", because section_defs[i].len doesn't include final \0 and so does a sort of prefix comparison. That's why "iouring/". Can we fix it? Are compatibility concerns? > >> #include <stdlib.h> >> #include <stdio.h> >> #include <stdarg.h> >> @@ -8630,6 +8634,9 @@ static const struct bpf_sec_def section_defs[] = { >> BPF_PROG_SEC("struct_ops", BPF_PROG_TYPE_STRUCT_OPS), >> BPF_EAPROG_SEC("sk_lookup/", BPF_PROG_TYPE_SK_LOOKUP, >> BPF_SK_LOOKUP), >> + SEC_DEF("iouring/", IOURING), >> + SEC_DEF("iouring.s/", IOURING, >> + .is_sleepable = true), >> }; >> >> #undef BPF_PROG_SEC_IMPL >> -- >> 2.31.1 >> -- Pavel Begunkov