* [PATCH] selftests/bpf: Use vmlinux.h for BPF programs
@ 2025-08-07 11:47 Hengqi Chen
2025-08-08 0:31 ` Alexei Starovoitov
0 siblings, 1 reply; 3+ messages in thread
From: Hengqi Chen @ 2025-08-07 11:47 UTC (permalink / raw)
To: bpf, ast, daniel, andrii, martin.lau; +Cc: hengqi.chen
Some of the bpf test progs still use linux/libc headers.
Let's use vmlinux.h instead like the rest of test progs.
This will also ease cross compiling.
No functional changes intended.
Signed-off-by: Hengqi Chen <hengqi.chen@gmail.com>
---
tools/testing/selftests/bpf/progs/loop1.c | 7 +------
tools/testing/selftests/bpf/progs/loop2.c | 7 +------
tools/testing/selftests/bpf/progs/loop3.c | 7 +------
tools/testing/selftests/bpf/progs/loop6.c | 10 +---------
tools/testing/selftests/bpf/progs/test_overhead.c | 5 +----
5 files changed, 5 insertions(+), 31 deletions(-)
diff --git a/tools/testing/selftests/bpf/progs/loop1.c b/tools/testing/selftests/bpf/progs/loop1.c
index 50e66772c046..b0fa26fb4760 100644
--- a/tools/testing/selftests/bpf/progs/loop1.c
+++ b/tools/testing/selftests/bpf/progs/loop1.c
@@ -1,11 +1,6 @@
// SPDX-License-Identifier: GPL-2.0
// Copyright (c) 2019 Facebook
-#include <linux/sched.h>
-#include <linux/ptrace.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <linux/bpf.h>
+#include "vmlinux.h"
#include <bpf/bpf_helpers.h>
#include <bpf/bpf_tracing.h>
diff --git a/tools/testing/selftests/bpf/progs/loop2.c b/tools/testing/selftests/bpf/progs/loop2.c
index 947bb7e988c2..0227409d4b0e 100644
--- a/tools/testing/selftests/bpf/progs/loop2.c
+++ b/tools/testing/selftests/bpf/progs/loop2.c
@@ -1,11 +1,6 @@
// SPDX-License-Identifier: GPL-2.0
// Copyright (c) 2019 Facebook
-#include <linux/sched.h>
-#include <linux/ptrace.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <linux/bpf.h>
+#include "vmlinux.h"
#include <bpf/bpf_helpers.h>
#include <bpf/bpf_tracing.h>
diff --git a/tools/testing/selftests/bpf/progs/loop3.c b/tools/testing/selftests/bpf/progs/loop3.c
index 717dab14322b..5d1c9a775e6b 100644
--- a/tools/testing/selftests/bpf/progs/loop3.c
+++ b/tools/testing/selftests/bpf/progs/loop3.c
@@ -1,11 +1,6 @@
// SPDX-License-Identifier: GPL-2.0
// Copyright (c) 2019 Facebook
-#include <linux/sched.h>
-#include <linux/ptrace.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <linux/bpf.h>
+#include "vmlinux.h"
#include <bpf/bpf_helpers.h>
#include <bpf/bpf_tracing.h>
diff --git a/tools/testing/selftests/bpf/progs/loop6.c b/tools/testing/selftests/bpf/progs/loop6.c
index e4ff97fbcce1..f8e2628c1083 100644
--- a/tools/testing/selftests/bpf/progs/loop6.c
+++ b/tools/testing/selftests/bpf/progs/loop6.c
@@ -1,8 +1,6 @@
// SPDX-License-Identifier: GPL-2.0
-#include <linux/ptrace.h>
-#include <stddef.h>
-#include <linux/bpf.h>
+#include "vmlinux.h"
#include <bpf/bpf_helpers.h>
#include <bpf/bpf_tracing.h>
#include "bpf_misc.h"
@@ -26,12 +24,6 @@ char _license[] SEC("license") = "GPL";
#define SG_CHAIN 0x01UL
#define SG_END 0x02UL
-struct scatterlist {
- unsigned long page_link;
- unsigned int offset;
- unsigned int length;
-};
-
#define sg_is_chain(sg) ((sg)->page_link & SG_CHAIN)
#define sg_is_last(sg) ((sg)->page_link & SG_END)
#define sg_chain_ptr(sg) \
diff --git a/tools/testing/selftests/bpf/progs/test_overhead.c b/tools/testing/selftests/bpf/progs/test_overhead.c
index abb7344b531f..5edf3cdc213d 100644
--- a/tools/testing/selftests/bpf/progs/test_overhead.c
+++ b/tools/testing/selftests/bpf/progs/test_overhead.c
@@ -1,9 +1,6 @@
// SPDX-License-Identifier: GPL-2.0
/* Copyright (c) 2019 Facebook */
-#include <stdbool.h>
-#include <stddef.h>
-#include <linux/bpf.h>
-#include <linux/ptrace.h>
+#include "vmlinux.h"
#include <bpf/bpf_helpers.h>
#include <bpf/bpf_tracing.h>
--
2.43.5
^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [PATCH] selftests/bpf: Use vmlinux.h for BPF programs
2025-08-07 11:47 [PATCH] selftests/bpf: Use vmlinux.h for BPF programs Hengqi Chen
@ 2025-08-08 0:31 ` Alexei Starovoitov
2025-08-18 2:11 ` Hengqi Chen
0 siblings, 1 reply; 3+ messages in thread
From: Alexei Starovoitov @ 2025-08-08 0:31 UTC (permalink / raw)
To: Hengqi Chen
Cc: bpf, Alexei Starovoitov, Daniel Borkmann, Andrii Nakryiko,
Martin KaFai Lau
On Thu, Aug 7, 2025 at 4:47 AM Hengqi Chen <hengqi.chen@gmail.com> wrote:
>
> Some of the bpf test progs still use linux/libc headers.
> Let's use vmlinux.h instead like the rest of test progs.
> This will also ease cross compiling.
only if...
> diff --git a/tools/testing/selftests/bpf/progs/loop6.c b/tools/testing/selftests/bpf/progs/loop6.c
> index e4ff97fbcce1..f8e2628c1083 100644
> --- a/tools/testing/selftests/bpf/progs/loop6.c
> +++ b/tools/testing/selftests/bpf/progs/loop6.c
> @@ -1,8 +1,6 @@
> // SPDX-License-Identifier: GPL-2.0
>
> -#include <linux/ptrace.h>
> -#include <stddef.h>
> -#include <linux/bpf.h>
> +#include "vmlinux.h"
> #include <bpf/bpf_helpers.h>
> #include <bpf/bpf_tracing.h>
> #include "bpf_misc.h"
> @@ -26,12 +24,6 @@ char _license[] SEC("license") = "GPL";
> #define SG_CHAIN 0x01UL
> #define SG_END 0x02UL
>
> -struct scatterlist {
> - unsigned long page_link;
> - unsigned int offset;
> - unsigned int length;
> -};
> -
Pls test your patch before submitting, so that maintainers
don't need to point to CI that complains about this.
scetterlist here is not the same as in vmlinux.h which causes issues.
--
pw-bot: cr
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH] selftests/bpf: Use vmlinux.h for BPF programs
2025-08-08 0:31 ` Alexei Starovoitov
@ 2025-08-18 2:11 ` Hengqi Chen
0 siblings, 0 replies; 3+ messages in thread
From: Hengqi Chen @ 2025-08-18 2:11 UTC (permalink / raw)
To: Alexei Starovoitov, Yonghong Song, Eduard Zingerman
Cc: bpf, Alexei Starovoitov, Daniel Borkmann, Andrii Nakryiko,
Martin KaFai Lau
On Fri, Aug 8, 2025 at 8:32 AM Alexei Starovoitov
<alexei.starovoitov@gmail.com> wrote:
>
> On Thu, Aug 7, 2025 at 4:47 AM Hengqi Chen <hengqi.chen@gmail.com> wrote:
> >
> > Some of the bpf test progs still use linux/libc headers.
> > Let's use vmlinux.h instead like the rest of test progs.
> > This will also ease cross compiling.
>
> only if...
>
> > diff --git a/tools/testing/selftests/bpf/progs/loop6.c b/tools/testing/selftests/bpf/progs/loop6.c
> > index e4ff97fbcce1..f8e2628c1083 100644
> > --- a/tools/testing/selftests/bpf/progs/loop6.c
> > +++ b/tools/testing/selftests/bpf/progs/loop6.c
> > @@ -1,8 +1,6 @@
> > // SPDX-License-Identifier: GPL-2.0
> >
> > -#include <linux/ptrace.h>
> > -#include <stddef.h>
> > -#include <linux/bpf.h>
> > +#include "vmlinux.h"
> > #include <bpf/bpf_helpers.h>
> > #include <bpf/bpf_tracing.h>
> > #include "bpf_misc.h"
> > @@ -26,12 +24,6 @@ char _license[] SEC("license") = "GPL";
> > #define SG_CHAIN 0x01UL
> > #define SG_END 0x02UL
> >
> > -struct scatterlist {
> > - unsigned long page_link;
> > - unsigned int offset;
> > - unsigned int length;
> > -};
> > -
>
> Pls test your patch before submitting, so that maintainers
> don't need to point to CI that complains about this.
>
Sorry, my bad.
> scetterlist here is not the same as in vmlinux.h which causes issues.
>
After some investigation (with GPT 5), it seems like the issue is raised by
__attribute__((preserve_access_index)) not struct size.
> --
> pw-bot: cr
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2025-08-18 2:12 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-08-07 11:47 [PATCH] selftests/bpf: Use vmlinux.h for BPF programs Hengqi Chen
2025-08-08 0:31 ` Alexei Starovoitov
2025-08-18 2:11 ` Hengqi Chen
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).