Re: [PATCH 1/5] perf test: Fix 2 bugs in 'perf test BPF'

From: Arnaldo Carvalho de Melo
Date: Tue Nov 17 2015 - 07:56:54 EST


Em Tue, Nov 17, 2015 at 08:32:46AM +0000, Wang Nan escreveu:
> Two bugs in 'perf test BPF' are found when testing BPF prologue without
> vmlinux:
>
> # mv /lib/modules/4.3.0-rc4+/build/vmlinux{,.bak}
> # ./perf test BPF
> 37: Test BPF filter :Failed to find the path for kernel: No such file or directory
> Ok
>
> Test BPF should fail in this case.
>
> This patch fixes two bugs in 'perf test BPF'. After this patch:
>
> # ./perf test BPF
> 37: Test BPF filter :Failed to find the path for kernel: No such file or directory
> FAILED!
> # mv /lib/modules/4.3.0-rc4+/build/vmlinux{.bak,}
> # ./perf test BPF
> 37: Test BPF filter : Ok

Applied, it is a clear improvement, but:

[root@zoo ~]# perf test
1: vmlinux symtab matches kallsyms : Skip
2: detect openat syscall event : Ok
<SNIP>
5: parse events tests : Ok
6: Validate PERF_RECORD_* events & perf_sample fields : FAILED!
7: Test perf pmu format parsing : Ok
<SNIP>
37: Test BPF filter :Failed to find the path for kernel: Invalid ELF file
FAILED!
38: x86 rdpmc test : Ok
39: Test converting perf time to TSC : FAILED!
40: Test dwarf unwind : Ok
41: Test x86 instruction decoder - new instructions : Ok
42: Test intel cqm nmi context read : Skip
[root@zoo ~]#

------------------------

It is now the only test to emit some message in non-verbose mode that is not
"Ok", "FAILED!" or "Skip" :-)

- Arnaldo

> Signed-off-by: Wang Nan <wangnan0@xxxxxxxxxx>
> Cc: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
> ---
> tools/perf/tests/bpf.c | 7 ++++---
> 1 file changed, 4 insertions(+), 3 deletions(-)
>
> diff --git a/tools/perf/tests/bpf.c b/tools/perf/tests/bpf.c
> index c7131fa..dca3998 100644
> --- a/tools/perf/tests/bpf.c
> +++ b/tools/perf/tests/bpf.c
> @@ -102,8 +102,7 @@ static int do_test(struct bpf_object *obj, int (*func)(void),
> err = parse_events_load_bpf_obj(&parse_evlist, &parse_evlist.list, obj);
> if (err || list_empty(&parse_evlist.list)) {
> pr_debug("Failed to add events selected by BPF\n");
> - if (!err)
> - return TEST_FAIL;
> + return TEST_FAIL;
> }
>
> snprintf(pid, sizeof(pid), "%d", getpid());
> @@ -157,8 +156,10 @@ static int do_test(struct bpf_object *obj, int (*func)(void),
> }
> }
>
> - if (count != expect)
> + if (count != expect) {
> pr_debug("BPF filter result incorrect\n");
> + goto out_delete_evlist;
> + }
>
> ret = TEST_OK;
>
> --
> 1.8.3.4
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/