All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] tools include: Add __sum16 and __wsum definitions.
@ 2021-03-07 22:30 Ian Rogers
  2021-03-08 13:37 ` Daniel Borkmann
  0 siblings, 1 reply; 3+ messages in thread
From: Ian Rogers @ 2021-03-07 22:30 UTC (permalink / raw)
  To: Peter Zijlstra, Ingo Molnar, Arnaldo Carvalho de Melo,
	Mark Rutland, Alexander Shishkin, Jiri Olsa, Namhyung Kim,
	Song Liu, linux-kernel, Alexei Starovoitov, Daniel Borkmann,
	Andrii Nakryiko, Martin KaFai Lau, Yonghong Song, John Fastabend,
	KP Singh, Tiezhu Yang, netdev, bpf
  Cc: Stephane Eranian, Ian Rogers

This adds definitions available in the uapi version.

Explanation:
In the kernel include of types.h the uapi version is included.
In tools the uapi/linux/types.h and linux/types.h are distinct.
For BPF programs a definition of __wsum is needed by the generated
bpf_helpers.h. The definition comes either from a generated vmlinux.h or
from <linux/types.h> that may be transitively included from bpf.h. The
perf build prefers linux/types.h over uapi/linux/types.h for
<linux/types.h>*. To allow tools/perf/util/bpf_skel/bpf_prog_profiler.bpf.c
to compile with the same include path used for perf then these
definitions are necessary.

There is likely a wider conversation about exactly how types.h should be
specified and the include order used by the perf build - it is somewhat
confusing that tools/include/uapi/linux/bpf.h is using the non-uapi
types.h.

*see tools/perf/Makefile.config:
...
INC_FLAGS += -I$(srctree)/tools/include/
INC_FLAGS += -I$(srctree)/tools/arch/$(SRCARCH)/include/uapi
INC_FLAGS += -I$(srctree)/tools/include/uapi
...
The include directories are scanned from left-to-right:
https://gcc.gnu.org/onlinedocs/gcc/Directory-Options.html
As tools/include/linux/types.h appears before
tools/include/uapi/linux/types.h then I say it is preferred.

Signed-off-by: Ian Rogers <irogers@google.com>
---
 tools/include/linux/types.h | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/tools/include/linux/types.h b/tools/include/linux/types.h
index e9c5a215837d..6e14a533ab4e 100644
--- a/tools/include/linux/types.h
+++ b/tools/include/linux/types.h
@@ -61,6 +61,9 @@ typedef __u32 __bitwise __be32;
 typedef __u64 __bitwise __le64;
 typedef __u64 __bitwise __be64;
 
+typedef __u16 __bitwise __sum16;
+typedef __u32 __bitwise __wsum;
+
 typedef struct {
 	int counter;
 } atomic_t;
-- 
2.30.1.766.gb4fecdf3b7-goog


^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [PATCH] tools include: Add __sum16 and __wsum definitions.
  2021-03-07 22:30 [PATCH] tools include: Add __sum16 and __wsum definitions Ian Rogers
@ 2021-03-08 13:37 ` Daniel Borkmann
  2021-03-08 13:41   ` Arnaldo Carvalho de Melo
  0 siblings, 1 reply; 3+ messages in thread
From: Daniel Borkmann @ 2021-03-08 13:37 UTC (permalink / raw)
  To: Ian Rogers, Peter Zijlstra, Ingo Molnar,
	Arnaldo Carvalho de Melo, Mark Rutland, Alexander Shishkin,
	Jiri Olsa, Namhyung Kim, Song Liu, linux-kernel,
	Alexei Starovoitov, Andrii Nakryiko, Martin KaFai Lau,
	Yonghong Song, John Fastabend, KP Singh, Tiezhu Yang, netdev,
	bpf
  Cc: Stephane Eranian

On 3/7/21 11:30 PM, Ian Rogers wrote:
> This adds definitions available in the uapi version.
> 
> Explanation:
> In the kernel include of types.h the uapi version is included.
> In tools the uapi/linux/types.h and linux/types.h are distinct.
> For BPF programs a definition of __wsum is needed by the generated
> bpf_helpers.h. The definition comes either from a generated vmlinux.h or
> from <linux/types.h> that may be transitively included from bpf.h. The
> perf build prefers linux/types.h over uapi/linux/types.h for
> <linux/types.h>*. To allow tools/perf/util/bpf_skel/bpf_prog_profiler.bpf.c
> to compile with the same include path used for perf then these
> definitions are necessary.
> 
> There is likely a wider conversation about exactly how types.h should be
> specified and the include order used by the perf build - it is somewhat
> confusing that tools/include/uapi/linux/bpf.h is using the non-uapi
> types.h.
> 
> *see tools/perf/Makefile.config:
> ...
> INC_FLAGS += -I$(srctree)/tools/include/
> INC_FLAGS += -I$(srctree)/tools/arch/$(SRCARCH)/include/uapi
> INC_FLAGS += -I$(srctree)/tools/include/uapi
> ...
> The include directories are scanned from left-to-right:
> https://gcc.gnu.org/onlinedocs/gcc/Directory-Options.html
> As tools/include/linux/types.h appears before
> tools/include/uapi/linux/types.h then I say it is preferred.
> 
> Signed-off-by: Ian Rogers <irogers@google.com>

Given more related to perf build infra, I presume Arnaldo would pick
this one up?

Thanks,
Daniel

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH] tools include: Add __sum16 and __wsum definitions.
  2021-03-08 13:37 ` Daniel Borkmann
@ 2021-03-08 13:41   ` Arnaldo Carvalho de Melo
  0 siblings, 0 replies; 3+ messages in thread
From: Arnaldo Carvalho de Melo @ 2021-03-08 13:41 UTC (permalink / raw)
  To: Daniel Borkmann
  Cc: Ian Rogers, Peter Zijlstra, Ingo Molnar, Mark Rutland,
	Alexander Shishkin, Jiri Olsa, Namhyung Kim, Song Liu,
	linux-kernel, Alexei Starovoitov, Andrii Nakryiko,
	Martin KaFai Lau, Yonghong Song, John Fastabend, KP Singh,
	Tiezhu Yang, netdev, bpf, Stephane Eranian

Em Mon, Mar 08, 2021 at 02:37:32PM +0100, Daniel Borkmann escreveu:
> On 3/7/21 11:30 PM, Ian Rogers wrote:
> > This adds definitions available in the uapi version.
> > 
> > Explanation:
> > In the kernel include of types.h the uapi version is included.
> > In tools the uapi/linux/types.h and linux/types.h are distinct.
> > For BPF programs a definition of __wsum is needed by the generated
> > bpf_helpers.h. The definition comes either from a generated vmlinux.h or
> > from <linux/types.h> that may be transitively included from bpf.h. The
> > perf build prefers linux/types.h over uapi/linux/types.h for
> > <linux/types.h>*. To allow tools/perf/util/bpf_skel/bpf_prog_profiler.bpf.c
> > to compile with the same include path used for perf then these
> > definitions are necessary.
> > 
> > There is likely a wider conversation about exactly how types.h should be
> > specified and the include order used by the perf build - it is somewhat
> > confusing that tools/include/uapi/linux/bpf.h is using the non-uapi
> > types.h.
> > 
> > *see tools/perf/Makefile.config:
> > ...
> > INC_FLAGS += -I$(srctree)/tools/include/
> > INC_FLAGS += -I$(srctree)/tools/arch/$(SRCARCH)/include/uapi
> > INC_FLAGS += -I$(srctree)/tools/include/uapi
> > ...
> > The include directories are scanned from left-to-right:
> > https://gcc.gnu.org/onlinedocs/gcc/Directory-Options.html
> > As tools/include/linux/types.h appears before
> > tools/include/uapi/linux/types.h then I say it is preferred.
> > 
> > Signed-off-by: Ian Rogers <irogers@google.com>
> 
> Given more related to perf build infra, I presume Arnaldo would pick
> this one up?

I'll process it.

- Arnaldo

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2021-03-08 13:44 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-03-07 22:30 [PATCH] tools include: Add __sum16 and __wsum definitions Ian Rogers
2021-03-08 13:37 ` Daniel Borkmann
2021-03-08 13:41   ` Arnaldo Carvalho de Melo

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.