Re: [PATCH 18/23] libbpf: support io_uring

From: Pavel Begunkov
Date: Thu May 20 2021 - 07:24:53 EST


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