2020-01-16 13:24:42

by Toke Høiland-Jørgensen

[permalink] [raw]
Subject: [PATCH bpf-next v3 04/11] tools/runqslower: Use consistent include paths for libbpf

From: Toke Høiland-Jørgensen <[email protected]>

Fix the runqslower tool to include libbpf header files with the bpf/
prefix, to be consistent with external users of the library. Also ensure
that all includes of exported libbpf header files (those that are exported
on 'make install' of the library) use bracketed includes instead of quoted.

To not break the build, keep the old include path until everything has been
changed to the new one; a subsequent patch will remove that.

Fixes: 6910d7d3867a ("selftests/bpf: Ensure bpf_helper_defs.h are taken from selftests dir")
Signed-off-by: Toke Høiland-Jørgensen <[email protected]>
---
tools/bpf/runqslower/Makefile | 5 +++--
tools/bpf/runqslower/runqslower.bpf.c | 2 +-
tools/bpf/runqslower/runqslower.c | 4 ++--
3 files changed, 6 insertions(+), 5 deletions(-)

diff --git a/tools/bpf/runqslower/Makefile b/tools/bpf/runqslower/Makefile
index 89fb7cd30f1a..c0512b830805 100644
--- a/tools/bpf/runqslower/Makefile
+++ b/tools/bpf/runqslower/Makefile
@@ -5,6 +5,7 @@ LLC := llc
LLVM_STRIP := llvm-strip
DEFAULT_BPFTOOL := $(OUTPUT)/sbin/bpftool
BPFTOOL ?= $(DEFAULT_BPFTOOL)
+LIBBPF_INCLUDE := -I$(abspath ../../lib) -I$(abspath ../../lib/bpf)
LIBBPF_SRC := $(abspath ../../lib/bpf)
CFLAGS := -g -Wall

@@ -57,13 +58,13 @@ $(OUTPUT)/%.skel.h: $(OUTPUT)/%.bpf.o | $(BPFTOOL)

$(OUTPUT)/%.bpf.o: %.bpf.c $(OUTPUT)/libbpf.a | $(OUTPUT)
$(call msg,BPF,$@)
- $(Q)$(CLANG) -g -O2 -target bpf -I$(OUTPUT) -I$(LIBBPF_SRC) \
+ $(Q)$(CLANG) -g -O2 -target bpf -I$(OUTPUT) $(LIBBPF_INCLUDE) \
-c $(filter %.c,$^) -o $@ && \
$(LLVM_STRIP) -g $@

$(OUTPUT)/%.o: %.c | $(OUTPUT)
$(call msg,CC,$@)
- $(Q)$(CC) $(CFLAGS) -I$(LIBBPF_SRC) -I$(OUTPUT) -c $(filter %.c,$^) -o $@
+ $(Q)$(CC) $(CFLAGS) $(LIBBPF_INCLUDE) -I$(OUTPUT) -c $(filter %.c,$^) -o $@

$(OUTPUT):
$(call msg,MKDIR,$@)
diff --git a/tools/bpf/runqslower/runqslower.bpf.c b/tools/bpf/runqslower/runqslower.bpf.c
index 623cce4d37f5..48a39f72fadf 100644
--- a/tools/bpf/runqslower/runqslower.bpf.c
+++ b/tools/bpf/runqslower/runqslower.bpf.c
@@ -1,7 +1,7 @@
// SPDX-License-Identifier: GPL-2.0
// Copyright (c) 2019 Facebook
#include "vmlinux.h"
-#include <bpf_helpers.h>
+#include <bpf/bpf_helpers.h>
#include "runqslower.h"

#define TASK_RUNNING 0
diff --git a/tools/bpf/runqslower/runqslower.c b/tools/bpf/runqslower/runqslower.c
index 996f0e2c560e..d89715844952 100644
--- a/tools/bpf/runqslower/runqslower.c
+++ b/tools/bpf/runqslower/runqslower.c
@@ -6,8 +6,8 @@
#include <string.h>
#include <sys/resource.h>
#include <time.h>
-#include <libbpf.h>
-#include <bpf.h>
+#include <bpf/libbpf.h>
+#include <bpf/bpf.h>
#include "runqslower.h"
#include "runqslower.skel.h"



2020-01-17 02:36:08

by Andrii Nakryiko

[permalink] [raw]
Subject: Re: [PATCH bpf-next v3 04/11] tools/runqslower: Use consistent include paths for libbpf

On Thu, Jan 16, 2020 at 5:23 AM Toke Høiland-Jørgensen <[email protected]> wrote:
>
> From: Toke Høiland-Jørgensen <[email protected]>
>
> Fix the runqslower tool to include libbpf header files with the bpf/
> prefix, to be consistent with external users of the library. Also ensure
> that all includes of exported libbpf header files (those that are exported
> on 'make install' of the library) use bracketed includes instead of quoted.
>
> To not break the build, keep the old include path until everything has been
> changed to the new one; a subsequent patch will remove that.
>
> Fixes: 6910d7d3867a ("selftests/bpf: Ensure bpf_helper_defs.h are taken from selftests dir")
> Signed-off-by: Toke Høiland-Jørgensen <[email protected]>
> ---
> tools/bpf/runqslower/Makefile | 5 +++--
> tools/bpf/runqslower/runqslower.bpf.c | 2 +-
> tools/bpf/runqslower/runqslower.c | 4 ++--
> 3 files changed, 6 insertions(+), 5 deletions(-)
>
> diff --git a/tools/bpf/runqslower/Makefile b/tools/bpf/runqslower/Makefile
> index 89fb7cd30f1a..c0512b830805 100644
> --- a/tools/bpf/runqslower/Makefile
> +++ b/tools/bpf/runqslower/Makefile
> @@ -5,6 +5,7 @@ LLC := llc
> LLVM_STRIP := llvm-strip
> DEFAULT_BPFTOOL := $(OUTPUT)/sbin/bpftool
> BPFTOOL ?= $(DEFAULT_BPFTOOL)
> +LIBBPF_INCLUDE := -I$(abspath ../../lib) -I$(abspath ../../lib/bpf)

I'd probably put all the -I's into single INCLUDES var and include
that one instead of mixing -I$(OUTPUT) and $(LIBBPF_INCLUDE), but this
works too.

Acked-by: Andrii Nakryiko <[email protected]>

> LIBBPF_SRC := $(abspath ../../lib/bpf)
> CFLAGS := -g -Wall
>

[...]

2020-01-17 09:49:10

by Toke Høiland-Jørgensen

[permalink] [raw]
Subject: Re: [PATCH bpf-next v3 04/11] tools/runqslower: Use consistent include paths for libbpf

Andrii Nakryiko <[email protected]> writes:

> On Thu, Jan 16, 2020 at 5:23 AM Toke Høiland-Jørgensen <[email protected]> wrote:
>>
>> From: Toke Høiland-Jørgensen <[email protected]>
>>
>> Fix the runqslower tool to include libbpf header files with the bpf/
>> prefix, to be consistent with external users of the library. Also ensure
>> that all includes of exported libbpf header files (those that are exported
>> on 'make install' of the library) use bracketed includes instead of quoted.
>>
>> To not break the build, keep the old include path until everything has been
>> changed to the new one; a subsequent patch will remove that.
>>
>> Fixes: 6910d7d3867a ("selftests/bpf: Ensure bpf_helper_defs.h are taken from selftests dir")
>> Signed-off-by: Toke Høiland-Jørgensen <[email protected]>
>> ---
>> tools/bpf/runqslower/Makefile | 5 +++--
>> tools/bpf/runqslower/runqslower.bpf.c | 2 +-
>> tools/bpf/runqslower/runqslower.c | 4 ++--
>> 3 files changed, 6 insertions(+), 5 deletions(-)
>>
>> diff --git a/tools/bpf/runqslower/Makefile b/tools/bpf/runqslower/Makefile
>> index 89fb7cd30f1a..c0512b830805 100644
>> --- a/tools/bpf/runqslower/Makefile
>> +++ b/tools/bpf/runqslower/Makefile
>> @@ -5,6 +5,7 @@ LLC := llc
>> LLVM_STRIP := llvm-strip
>> DEFAULT_BPFTOOL := $(OUTPUT)/sbin/bpftool
>> BPFTOOL ?= $(DEFAULT_BPFTOOL)
>> +LIBBPF_INCLUDE := -I$(abspath ../../lib) -I$(abspath ../../lib/bpf)
>
> I'd probably put all the -I's into single INCLUDES var and include
> that one instead of mixing -I$(OUTPUT) and $(LIBBPF_INCLUDE), but this
> works too.

Hmm, yeah, not a bad idea, actually. Since it seems I'm respinning
anyway, I'll fix that up as well.

-Toke