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

From: pi3orama
Date: Tue Nov 17 2015 - 08:02:07 EST




发自我的 iPhone

> 在 2015年11月17日,下午8:56,Arnaldo Carvalho de Melo <acme@xxxxxxxxxx> 写道:
>
> 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" :-)
>

Please see 5/5. In that patch I try to fix it throughly by output redirection.

Thank you.


> - 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/