Re: perf test BPF skipping

From: Arnaldo Carvalho de Melo
Date: Tue Apr 11 2017 - 14:47:54 EST


Em Tue, Apr 11, 2017 at 03:37:43PM -0300, Arnaldo Carvalho de Melo escreveu:
> Em Tue, Apr 11, 2017 at 03:35:58PM -0300, Arnaldo Carvalho de Melo escreveu:
> > Ideas? Will dig deeper later, the warning in the perf test output
> > doesn't help.
> >
> > Using perf as in acme/perf/core
>
> Humm, I had a long running 'perf top' session, as soon as I exited it
> and tried again:
>
> [root@jouet ~]# perf test bpf
> 38: BPF filter :
> 38.1: Basic BPF filtering : Ok
> 38.2: BPF pinning : Ok
> 38.3: BPF prologue generation : Ok
> 38.4: BPF relocation checker : Ok
> [root@jouet ~]#
>
> Nevermind then, I'll check some stuff, if I manage to reproduce it
> again, will report.

Yeah, if I run just 'perf test bpf', it works fine, but if I start a
'perf top' session and then, with it in place, try 'perf test bpf', it
fails.

- Arnaldo

> - Arnaldo
>
> > [root@jouet ~]# perf test bpf
> > 38: BPF filter :
> > 38.1: Basic BPF filtering : Skip
> > 38.2: BPF pinning : Skip
> > 38.3: BPF prologue generation : Skip
> > 38.4: BPF relocation checker : Skip
> > [root@jouet ~]# perf test -v bpf
> > 38: BPF filter :
> > 38.1: Basic BPF filtering :
> > --- start ---
> > test child forked, pid 26303
> > Missing basic BPF support, skip this test: Operation not permitted
> > test child finished with -2
> > ---- end ----
> > BPF filter subtest 0: Skip
> > 38.2: BPF pinning :
> > --- force skipped ---
> > BPF filter subtest 1: Skip
> > 38.3: BPF prologue generation :
> > --- force skipped ---
> > BPF filter subtest 2: Skip
> > 38.4: BPF relocation checker :
> > --- force skipped ---
> > BPF filter subtest 3: Skip
> > [root@jouet ~]#
> > [root@jouet ~]# uname -a
> > Linux jouet 4.11.0-rc6+ #7 SMP Tue Apr 11 11:53:14 -03 2017 x86_64 x86_64 x86_64 GNU/Linux
> > [root@jouet ~]# grep ' t bpf' /proc/kallsyms
> > ffffffff9b09e338 t bpf_slow_path_word
> > ffffffff9b09e36a t bpf_slow_path_half
> > ffffffff9b09e3a2 t bpf_slow_path_byte
> > ffffffff9b09e3d3 t bpf_slow_path_word_neg
> > ffffffff9b09e403 t bpf_slow_path_half_neg
> > ffffffff9b09e435 t bpf_slow_path_byte_neg
> > ffffffff9b09e460 t bpf_error
> > ffffffff9b1a5450 t bpf_get_prog_name
> > ffffffff9b1a69c0 t bpf_prog_kallsyms_find
> > ffffffff9b1a7e80 t bpf_prog_free_deferred
> > ffffffff9b1a9b50 t bpf_map_free_deferred
> > ffffffff9b1a9b80 t bpf_map_put_uref
> > ffffffff9b1a9ba0 t bpf_map_show_fdinfo
> > ffffffff9b1a9c40 t bpf_prog_show_fdinfo
> > ffffffff9b1a9e40 t bpf_prog_release
> > ffffffff9b1a9e90 t bpf_prog_uncharge_memlock.isra.17
> > ffffffff9b1aa130 t bpf_map_release
> > ffffffff9b1aa640 t bpf_prog_load
> > ffffffff9b1b0370 t bpf_get_inode
> > ffffffff9b1b0410 t bpf_dentry_finalize
> > ffffffff9b1b0460 t bpf_mkdir
> > ffffffff9b1b04d0 t bpf_symlink
> > ffffffff9b1b0560 t bpf_lookup
> > ffffffff9b1b05c0 t bpf_mount
> > ffffffff9b1b05e0 t bpf_fill_super
> > ffffffff9b1b06f0 t bpf_any_put
> > ffffffff9b1b0740 t bpf_evict_inode
> > ffffffff9b1b07b0 t bpf_mkobj
> > ffffffff9b1b7eb0 t bpf_overflow_handler
> > ffffffff9b751dd0 t bpf_convert_ctx_access
> > ffffffff9b7525b0 t bpf_xdp_copy
> > ffffffff9b7525d0 t bpf_convert_filter
> > ffffffff9b753450 t bpf_get_skb_set_tunnel_proto
> > ffffffff9b753af0 t bpf_prog_store_orig_filter.isra.37
> > ffffffff9b753e80 t bpf_base_func_proto
> > ffffffff9b7541f0 t bpf_skb_copy
> > ffffffff9b755630 t bpf_prepare_filter
> > ffffffff9b762ee0 t bpf_encap_nlsize
> > ffffffff9b762ef0 t bpf_lwt_prog_destroy
> > ffffffff9b762f20 t bpf_destroy_state
> > ffffffff9b762f50 t bpf_parse_prog
> > ffffffff9b763010 t bpf_build_state
> > ffffffff9b763190 t bpf_lwt_prog_cmp.isra.6
> > ffffffff9b7631c0 t bpf_encap_cmp
> > ffffffff9b763490 t bpf_xmit
> > ffffffff9b763530 t bpf_output
> > ffffffff9b7635d0 t bpf_input
> > ffffffff9b763660 t bpf_fill_lwt_prog
> > ffffffff9b763700 t bpf_fill_encap_info
> > ffffffff9bfb4046 t bpf_init
> > ffffffff9bfefcd2 t bpf_lwt_init
> > [root@jouet ~]#
> >
> > [root@jouet ~]# grep BPF ~acme/git/build/v4.11.0-rc6+/.config
> > CONFIG_CGROUP_BPF=y
> > CONFIG_BPF=y
> > CONFIG_BPF_SYSCALL=y
> > CONFIG_NETFILTER_XT_MATCH_BPF=m
> > CONFIG_NET_CLS_BPF=m
> > CONFIG_NET_ACT_BPF=m
> > CONFIG_BPF_JIT=y
> > CONFIG_LWTUNNEL_BPF=y
> > CONFIG_HAVE_EBPF_JIT=y
> > CONFIG_BPF_EVENTS=y
> > # CONFIG_TEST_BPF is not set
> > [root@jouet ~]#
> >
> > [root@jouet ~]# perf test LLVM
> > 36: LLVM search and compile :
> > 36.1: Basic BPF llvm compile : Ok
> > 36.2: kbuild searching : Ok
> > 36.3: Compile source for BPF prologue generation: Ok
> > 36.4: Compile source for BPF relocation : Ok
> > [root@jouet ~]#