From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753155AbbJOMCj (ORCPT ); Thu, 15 Oct 2015 08:02:39 -0400 Received: from szxga01-in.huawei.com ([58.251.152.64]:37469 "EHLO szxga01-in.huawei.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753002AbbJOMCi (ORCPT ); Thu, 15 Oct 2015 08:02:38 -0400 Message-ID: <561F94EE.2060503@huawei.com> Date: Thu, 15 Oct 2015 19:58:38 +0800 From: "Wangnan (F)" User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:31.0) Gecko/20100101 Thunderbird/31.6.0 MIME-Version: 1.0 To: Namhyung Kim CC: , , , , , , , , , , , , , , Arnaldo Carvalho de Melo Subject: Re: [PATCH 10/31] perf test: Enforce LLVM test for BPF test References: <1444826502-49291-1-git-send-email-wangnan0@huawei.com> <1444826502-49291-11-git-send-email-wangnan0@huawei.com> <20151014154842.GC4085@danjae.kornet> In-Reply-To: <20151014154842.GC4085@danjae.kornet> Content-Type: text/plain; charset="utf-8"; format=flowed Content-Transfer-Encoding: 7bit X-Originating-IP: [10.111.66.109] X-CFilter-Loop: Reflected Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 2015/10/14 23:48, Namhyung Kim wrote: > On Wed, Oct 14, 2015 at 12:41:21PM +0000, Wang Nan wrote: >> This patch replaces the original toy BPF program with previous introduced >> bpf-script-example.c. Dynamically embedded it into 'llvm-src.c'. >> >> The newly introduced BPF program attaches a BPF program at >> 'sys_epoll_pwait()', and collect half samples from it. perf itself never >> use that syscall, so further test can verify their result with it. >> >> Since BPF program require LINUX_VERSION_CODE of runtime kernel, this >> patch computes that code from uname. >> >> Since the resuling BPF object is useful for further testcases, this patch >> introduces 'prepare' and 'cleanup' method to tests, and makes test__llvm() >> create a MAP_SHARED memory array to hold the resulting object. >> >> Signed-off-by: He Kuang >> Signed-off-by: Wang Nan >> Cc: Arnaldo Carvalho de Melo >> Cc: Alexei Starovoitov >> Cc: Brendan Gregg >> Cc: Daniel Borkmann >> Cc: David Ahern >> Cc: Jiri Olsa >> Cc: Kaixu Xia >> Cc: Masami Hiramatsu >> Cc: Namhyung Kim >> Cc: Peter Zijlstra >> Cc: Zefan Li >> Cc: pi3orama@163.com >> Link: http://lkml.kernel.org/n/ebpf-6yw9eg0ej3l4jnqhinngkw86@git.kernel.org >> --- > [SNIP] > >> +void test__llvm_prepare(void) >> +{ >> + p_test_llvm__bpf_result = mmap(NULL, SHARED_BUF_INIT_SIZE, >> + PROT_READ | PROT_WRITE, >> + MAP_SHARED | MAP_ANONYMOUS, -1, 0); >> + if (!p_test_llvm__bpf_result) > It should check MAP_FAILED instead. > Fixed by this way: diff --git a/tools/perf/tests/llvm.c b/tools/perf/tests/llvm.c index e722e8a..25ddeaf 100644 --- a/tools/perf/tests/llvm.c +++ b/tools/perf/tests/llvm.c @@ -199,12 +199,15 @@ void test__llvm_prepare(void) for (i = 0; llvm_testcases[i].source; i++) { struct test_llvm__bpf_result *result; + void *p; - result = mmap(NULL, SHARED_BUF_INIT_SIZE, - PROT_READ | PROT_WRITE, - MAP_SHARED | MAP_ANONYMOUS, -1, 0); - if (!result) + p = mmap(NULL, SHARED_BUF_INIT_SIZE, + PROT_READ | PROT_WRITE, + MAP_SHARED | MAP_ANONYMOUS, -1, 0); + if (p == MAP_FAILED) return; + + result = p; memset((void *)result, '\0', SHARED_BUF_INIT_SIZE); llvm_testcases[i].result = result; Thank you.