2016-12-15 15:29:44

by Arnaldo Carvalho de Melo

[permalink] [raw]
Subject: [PATCH] sample/bpf: Make perf_event_read() static


While testing Joe's conversion of samples/bpf/ to use tools/lib/bpf/ I
noticed some warnings, do you guys mind if I put patches like the one
below in my tree, pushing to Ingo soon?

Or is there anything subtle against doing so?


----

While building samples/bpf/ on a Fedora Rawhide container, with
clang/llvm 3.9 I noticed this:

root@1e797fdfbf4f linux]# make -j4 O=/tmp/build/linux/ samples/bpf/
make[1]: Entering directory '/tmp/build/linux'
CHK include/config/kernel.release
GEN ./Makefile
CHK include/generated/uapi/linux/version.h
Using /git/linux as source for kernel
<SNIP>
HOSTCC samples/bpf/trace_output_user.o
/git/linux/samples/bpf/trace_output_user.c:64:6: warning: no previous
prototype for 'perf_event_read' [-Wmissing-prototypes]
void perf_event_read(print_fn fn)
^~~~~~~~~~~~~~~
HOSTLD samples/bpf/trace_output
make[1]: Leaving directory '/tmp/build/linux'

Shutup the compiler by setting that function as static.

Cc: Alexei Starovoitov <[email protected]>
Cc: Daniel Borkmann <[email protected]>
Cc: Wang Nan <[email protected]>,
Cc: Joe Stringer <[email protected]>
Link: http://lkml.kernel.org/n/[email protected]
Signed-off-by: Arnaldo Carvalho de Melo <[email protected]>

--

diff --git a/samples/bpf/trace_output_user.c b/samples/bpf/trace_output_user.c
index 3bedd945def1..1a1da7bddb93 100644
--- a/samples/bpf/trace_output_user.c
+++ b/samples/bpf/trace_output_user.c
@@ -61,7 +61,7 @@ struct perf_event_sample {
char data[];
};

-void perf_event_read(print_fn fn)
+static void perf_event_read(print_fn fn)
{
__u64 data_tail = header->data_tail;
__u64 data_head = header->data_head;


2016-12-15 15:49:22

by Daniel Borkmann

[permalink] [raw]
Subject: Re: [PATCH] sample/bpf: Make perf_event_read() static

On 12/15/2016 04:29 PM, Arnaldo Carvalho de Melo wrote:
>
> While testing Joe's conversion of samples/bpf/ to use tools/lib/bpf/ I
> noticed some warnings, do you guys mind if I put patches like the one
> below in my tree, pushing to Ingo soon?
>
> Or is there anything subtle against doing so?

Fwiw, no objections from my side, there is currently nothing in
net/net-next tree that could cause conflicts regarding the below
change, so should be good to take this route instead.

> ----
>
> While building samples/bpf/ on a Fedora Rawhide container, with
> clang/llvm 3.9 I noticed this:
>
> root@1e797fdfbf4f linux]# make -j4 O=/tmp/build/linux/ samples/bpf/
> make[1]: Entering directory '/tmp/build/linux'
> CHK include/config/kernel.release
> GEN ./Makefile
> CHK include/generated/uapi/linux/version.h
> Using /git/linux as source for kernel
> <SNIP>
> HOSTCC samples/bpf/trace_output_user.o
> /git/linux/samples/bpf/trace_output_user.c:64:6: warning: no previous
> prototype for 'perf_event_read' [-Wmissing-prototypes]
> void perf_event_read(print_fn fn)
> ^~~~~~~~~~~~~~~
> HOSTLD samples/bpf/trace_output
> make[1]: Leaving directory '/tmp/build/linux'
>
> Shutup the compiler by setting that function as static.
>
> Cc: Alexei Starovoitov <[email protected]>
> Cc: Daniel Borkmann <[email protected]>
> Cc: Wang Nan <[email protected]>,
> Cc: Joe Stringer <[email protected]>
> Link: http://lkml.kernel.org/n/[email protected]
> Signed-off-by: Arnaldo Carvalho de Melo <[email protected]>

Acked-by: Daniel Borkmann <[email protected]>

Thanks,
Daniel

2016-12-15 15:54:41

by Arnaldo Carvalho de Melo

[permalink] [raw]
Subject: Re: [PATCH] sample/bpf: Make perf_event_read() static

Em Thu, Dec 15, 2016 at 04:49:07PM +0100, Daniel Borkmann escreveu:
> On 12/15/2016 04:29 PM, Arnaldo Carvalho de Melo wrote:
> >
> > While testing Joe's conversion of samples/bpf/ to use tools/lib/bpf/ I
> > noticed some warnings, do you guys mind if I put patches like the one
> > below in my tree, pushing to Ingo soon?
> >
> > Or is there anything subtle against doing so?
>
> Fwiw, no objections from my side, there is currently nothing in
> net/net-next tree that could cause conflicts regarding the below
> change, so should be good to take this route instead.

Thanks a lot!

Ah, since it seems the overhead of having clang/llvm/bc/findutils in
addition to what I have in the containers for distros with suitable
packages is small, I'll probably end up building samples/bpf/ in those
containers, in addition to building perf with/without libelf and
objtool.

This way I'll catch build problems everytime I prepare my pull reqs to
Ingo and hopefully fix them then.

- Arnaldo

> > ----
> >
> > While building samples/bpf/ on a Fedora Rawhide container, with
> > clang/llvm 3.9 I noticed this:
> >
> > root@1e797fdfbf4f linux]# make -j4 O=/tmp/build/linux/ samples/bpf/
> > make[1]: Entering directory '/tmp/build/linux'
> > CHK include/config/kernel.release
> > GEN ./Makefile
> > CHK include/generated/uapi/linux/version.h
> > Using /git/linux as source for kernel
> > <SNIP>
> > HOSTCC samples/bpf/trace_output_user.o
> > /git/linux/samples/bpf/trace_output_user.c:64:6: warning: no previous
> > prototype for 'perf_event_read' [-Wmissing-prototypes]
> > void perf_event_read(print_fn fn)
> > ^~~~~~~~~~~~~~~
> > HOSTLD samples/bpf/trace_output
> > make[1]: Leaving directory '/tmp/build/linux'
> >
> > Shutup the compiler by setting that function as static.
> >
> > Cc: Alexei Starovoitov <[email protected]>
> > Cc: Daniel Borkmann <[email protected]>
> > Cc: Wang Nan <[email protected]>,
> > Cc: Joe Stringer <[email protected]>
> > Link: http://lkml.kernel.org/n/[email protected]
> > Signed-off-by: Arnaldo Carvalho de Melo <[email protected]>
>
> Acked-by: Daniel Borkmann <[email protected]>
>
> Thanks,
> Daniel

Subject: [tip:perf/urgent] samples/bpf: Make perf_event_read() static

Commit-ID: 96c2fb69b92fcf6006dfb3017d6d887f8321407b
Gitweb: http://git.kernel.org/tip/96c2fb69b92fcf6006dfb3017d6d887f8321407b
Author: Arnaldo Carvalho de Melo <[email protected]>
AuthorDate: Thu, 15 Dec 2016 12:29:27 -0300
Committer: Arnaldo Carvalho de Melo <[email protected]>
CommitDate: Tue, 20 Dec 2016 09:37:33 -0300

samples/bpf: Make perf_event_read() static

While testing Joe's conversion of samples/bpf/ to use tools/lib/bpf/ I noticed
some warnings building samples/bpf/ on a Fedora Rawhide container, with
clang/llvm 3.9 I noticed this:

[root@1e797fdfbf4f linux]# make -j4 O=/tmp/build/linux/ samples/bpf/
make[1]: Entering directory '/tmp/build/linux'
CHK include/config/kernel.release
GEN ./Makefile
CHK include/generated/uapi/linux/version.h
Using /git/linux as source for kernel
<SNIP>
HOSTCC samples/bpf/trace_output_user.o
/git/linux/samples/bpf/trace_output_user.c:64:6: warning: no previous
prototype for 'perf_event_read' [-Wmissing-prototypes]
void perf_event_read(print_fn fn)
^~~~~~~~~~~~~~~
HOSTLD samples/bpf/trace_output
make[1]: Leaving directory '/tmp/build/linux'

Shut up the compiler by making that function static.

Acked-by: Daniel Borkmann <[email protected]>
Cc: Alexei Starovoitov <[email protected]>
Cc: Joe Stringer <[email protected]>
Cc: Wang Nan <[email protected]>
Link: http://lkml.kernel.org/r/[email protected]
Signed-off-by: Arnaldo Carvalho de Melo <[email protected]>
---
samples/bpf/trace_output_user.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/samples/bpf/trace_output_user.c b/samples/bpf/trace_output_user.c
index 3bedd94..1a1da7b 100644
--- a/samples/bpf/trace_output_user.c
+++ b/samples/bpf/trace_output_user.c
@@ -61,7 +61,7 @@ struct perf_event_sample {
char data[];
};

-void perf_event_read(print_fn fn)
+static void perf_event_read(print_fn fn)
{
__u64 data_tail = header->data_tail;
__u64 data_head = header->data_head;