[DTrace-devel] [PATCH 1/2] bpf: use bpf/bpf_helpers.h from libbpf-dev[el]

Eugene Loh eugene.loh at oracle.com
Sat Feb 3 03:57:09 UTC 2024


Actually, two more things.

Since libbpf-devel in OL7 doesn't have the needed header file (as of 
yet), I guess I don't understand how this patch will be handled, 
especially if people aren't on Oracle Linux.

Also, one can get

      error: indirect call in function, which are not supported by eBPF

errors in bpf get_bvar.c, get_agg.c, and get_dvar.c.  I guess 
gcc-bpf-unknown-none 11.2.1 is not sufficient, but 12.1.1 is.  I suppose 
this version dependency should also appear in dtrace.spec?

On 2/2/24 13:24, Eugene Loh wrote:
> iiuc, this patch introduces a new dependency:  libbpf-devel.  So I 
> would think that means adding that BuildReq to dtrace.spec.  If so, 
> then that addition should be made and:
> Reviewed-by: Eugene Loh <eugene.loh at oracle.com>
>
> On 2/2/24 11:49, Kris Van Hees via DTrace-devel wrote:
>> Signed-off-by: Kris Van Hees <kris.van.hees at oracle.com>
>> ---
>>   bpf/Build         | 2 +-
>>   bpf/agg_lqbin.c   | 4 ++--
>>   bpf/agg_qbin.c    | 4 ++--
>>   bpf/get_agg.c     | 4 ++--
>>   bpf/get_bvar.c    | 4 ++--
>>   bpf/get_dvar.c    | 4 ++--
>>   bpf/probe_error.c | 4 ++--
>>   bpf/speculation.c | 4 ++--
>>   bpf/strlen.c      | 4 ++--
>>   9 files changed, 17 insertions(+), 17 deletions(-)
>>
>> diff --git a/bpf/Build b/bpf/Build
>> index 4f3c7ca0..62812942 100644
>> --- a/bpf/Build
>> +++ b/bpf/Build
>> @@ -16,7 +16,7 @@ $(objdir)/include/.dir.stamp:
>>       @touch $(objdir)/include/.dir.stamp
>>     BPFLIBS += bpf_dlib
>> -bpf_dlib_CPPFLAGS = -Ilibdtrace -Iinclude -I$(objdir)/include
>> +bpf_dlib_CPPFLAGS = -Ilibdtrace -Iinclude -I$(objdir)/include 
>> -idirafter /usr/include
>>   bpf_dlib_TARGET = dlibs/bpf_dlib
>>   bpf_dlib_DIR := $(current-dir)
>>   bpf_dlib_SRCDEPS = $(objdir)/include/.dir.stamp
>> diff --git a/bpf/agg_lqbin.c b/bpf/agg_lqbin.c
>> index 5eba9de3..c6b407ff 100644
>> --- a/bpf/agg_lqbin.c
>> +++ b/bpf/agg_lqbin.c
>> @@ -1,10 +1,10 @@
>>   // SPDX-License-Identifier: GPL-2.0
>>   /*
>> - * Copyright (c) 2020, Oracle and/or its affiliates. All rights 
>> reserved.
>> + * Copyright (c) 2020, 2024, Oracle and/or its affiliates.
>>    */
>>   #include <linux/bpf.h>
>>   #include <stdint.h>
>> -#include <bpf-helpers.h>
>> +#include <bpf/bpf_helpers.h>
>>     #ifndef noinline
>>   # define noinline    __attribute__((noinline))
>> diff --git a/bpf/agg_qbin.c b/bpf/agg_qbin.c
>> index 741dfe27..00d2a1a8 100644
>> --- a/bpf/agg_qbin.c
>> +++ b/bpf/agg_qbin.c
>> @@ -1,10 +1,10 @@
>>   // SPDX-License-Identifier: GPL-2.0
>>   /*
>> - * Copyright (c) 2020, Oracle and/or its affiliates. All rights 
>> reserved.
>> + * Copyright (c) 2020, 2024, Oracle and/or its affiliates.
>>    */
>>   #include <linux/bpf.h>
>>   #include <stdint.h>
>> -#include <bpf-helpers.h>
>> +#include <bpf/bpf_helpers.h>
>>     #ifndef noinline
>>   # define noinline    __attribute__((noinline))
>> diff --git a/bpf/get_agg.c b/bpf/get_agg.c
>> index 0f26ed34..c0eb825f 100644
>> --- a/bpf/get_agg.c
>> +++ b/bpf/get_agg.c
>> @@ -1,10 +1,10 @@
>>   // SPDX-License-Identifier: GPL-2.0
>>   /*
>> - * Copyright (c) 2022, 2023, Oracle and/or its affiliates. All 
>> rights reserved.
>> + * Copyright (c) 2022, 2024, Oracle and/or its affiliates.
>>    */
>>   #include <linux/bpf.h>
>>   #include <stdint.h>
>> -#include <bpf-helpers.h>
>> +#include <bpf/bpf_helpers.h>
>>   #include <bpf-lib.h>
>>   #include <dt_bpf_maps.h>
>>   #include <dt_dctx.h>
>> diff --git a/bpf/get_bvar.c b/bpf/get_bvar.c
>> index 3fba982a..751dc9c3 100644
>> --- a/bpf/get_bvar.c
>> +++ b/bpf/get_bvar.c
>> @@ -1,11 +1,11 @@
>>   // SPDX-License-Identifier: GPL-2.0
>>   /*
>> - * Copyright (c) 2020, 2023, Oracle and/or its affiliates. All 
>> rights reserved.
>> + * Copyright (c) 2020, 2024, Oracle and/or its affiliates.
>>    */
>>   #include <linux/bpf.h>
>>   #include <stddef.h>
>>   #include <stdint.h>
>> -#include <bpf-helpers.h>
>> +#include <bpf/bpf_helpers.h>
>>   #include <dtrace/conf.h>
>>   #include <dtrace/dif_defines.h>
>>   #include <dtrace/faults_defines.h>
>> diff --git a/bpf/get_dvar.c b/bpf/get_dvar.c
>> index 0a4a758b..1bb5eb00 100644
>> --- a/bpf/get_dvar.c
>> +++ b/bpf/get_dvar.c
>> @@ -1,10 +1,10 @@
>>   // SPDX-License-Identifier: GPL-2.0
>>   /*
>> - * Copyright (c) 2019, 2023, Oracle and/or its affiliates. All 
>> rights reserved.
>> + * Copyright (c) 2019, 2024, Oracle and/or its affiliates.
>>    */
>>   #include <linux/bpf.h>
>>   #include <stdint.h>
>> -#include <bpf-helpers.h>
>> +#include <bpf/bpf_helpers.h>
>>   #include <bpf-lib.h>
>>   #include <dt_dctx.h>
>>   diff --git a/bpf/probe_error.c b/bpf/probe_error.c
>> index 5f54533d..c8ddcdfa 100644
>> --- a/bpf/probe_error.c
>> +++ b/bpf/probe_error.c
>> @@ -1,10 +1,10 @@
>>   // SPDX-License-Identifier: GPL-2.0
>>   /*
>> - * Copyright (c) 2021, 2022, Oracle and/or its affiliates. All 
>> rights reserved.
>> + * Copyright (c) 2021, 2024, Oracle and/or its affiliates.
>>    */
>>   #include <linux/bpf.h>
>>   #include <stdint.h>
>> -#include <bpf-helpers.h>
>> +#include <bpf/bpf_helpers.h>
>>   #include <dt_dctx.h>
>>     #ifndef noinline
>> diff --git a/bpf/speculation.c b/bpf/speculation.c
>> index 616008f3..ccd5877f 100644
>> --- a/bpf/speculation.c
>> +++ b/bpf/speculation.c
>> @@ -1,10 +1,10 @@
>>   // SPDX-License-Identifier: GPL-2.0
>>   /*
>> - * Copyright (c) 2021, 2023, Oracle and/or its affiliates. All 
>> rights reserved.
>> + * Copyright (c) 2021, 2024, Oracle and/or its affiliates.
>>    */
>>   #include <linux/bpf.h>
>>   #include <stdint.h>
>> -#include <bpf-helpers.h>
>> +#include <bpf/bpf_helpers.h>
>>   #include <bpf-lib.h>
>>   #include <dt_bpf_maps.h>
>>   diff --git a/bpf/strlen.c b/bpf/strlen.c
>> index d39955a2..5408ed17 100644
>> --- a/bpf/strlen.c
>> +++ b/bpf/strlen.c
>> @@ -1,9 +1,9 @@
>>   // SPDX-License-Identifier: GPL-2.0
>>   /*
>> - * Copyright (c) 2021, 2022, Oracle and/or its affiliates. All 
>> rights reserved.
>> + * Copyright (c) 2021, 2024, Oracle and/or its affiliates.
>>    */
>>   #include <linux/bpf.h>
>> -#include <bpf-helpers.h>
>> +#include <bpf/bpf_helpers.h>
>>   #include <stdint.h>
>>   #include <dt_dctx.h>
>>   #include <bpf-lib.h>



More information about the DTrace-devel mailing list