Skip to contentSkip to conversation

sample/bpf: Make perf_event_read() static

PATCH In review Arnaldo Carvalho de Melo 3 participants 4 messages Dec 15, 2016 – Dec 20, 2016 BPF

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 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.

--

samples/bpf/trace_output_user.c +1 -1
index 3bedd945def1..1a1da7bddb93 100644
@@ -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;
maintainer Acked-by on v1 1/1
#1 lore raw
Quoted 6 lines · Arnaldo Carvalho de Melo

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.

Quoted 20 lines

----

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'

Quoted 8 lines

Shutup the compiler by setting that function as static.

Thanks,
Daniel

#2 lore raw

Em Thu, Dec 15, 2016 at 04:49:07PM +0100, Daniel Borkmann escreveu:

Quoted 11 lines · Arnaldo Carvalho de Melo
Quoted 6 lines

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

Quoted 33 lines
Quoted 20 lines

----

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'

Quoted 8 lines

Shutup the compiler by setting that function as static.

Thanks,
Daniel

#3 lore raw

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

In reply to Arnaldo Carvalho de Melo
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.

---
 samples/bpf/trace_output_user.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
samples/bpf/trace_output_user.c +1 -1
index 3bedd94..1a1da7b 100644
@@ -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;