From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754624AbbIBMsl (ORCPT ); Wed, 2 Sep 2015 08:48:41 -0400 Received: from mail-pa0-f53.google.com ([209.85.220.53]:35019 "EHLO mail-pa0-f53.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754331AbbIBMsj (ORCPT ); Wed, 2 Sep 2015 08:48:39 -0400 Date: Wed, 2 Sep 2015 21:45:28 +0900 From: Namhyung Kim To: Wang Nan Cc: acme@redhat.com, mingo@kernel.org, ast@plumgrid.com, linux-kernel@vger.kernel.org, lizefan@huawei.com, pi3orama@163.com, Brendan Gregg , Daniel Borkmann , David Ahern , He Kuang , Jiri Olsa , Kaixu Xia , Masami Hiramatsu , Peter Zijlstra Subject: Re: [PATCH 18/31] perf test: Add 'perf test BPF' Message-ID: <20150902124528.GA27663@danjae.kornet> References: <1440822125-52691-1-git-send-email-wangnan0@huawei.com> <1440822125-52691-19-git-send-email-wangnan0@huawei.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline In-Reply-To: <1440822125-52691-19-git-send-email-wangnan0@huawei.com> User-Agent: Mutt/1.5.23+102 (2ca89bed6448) (2014-03-12) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Sat, Aug 29, 2015 at 04:21:52AM +0000, Wang Nan wrote: > This patch adds BPF testcase for testing BPF event filtering. > > By utilizing the result of 'perf test LLVM', this patch compiles the > eBPF sample program then test it ability. The BPF script in 'perf test > LLVM' collects half of execution of epoll_pwait(). This patch runs 111 > times of it, so the resule should contains 56 samples. > > Signed-off-by: Wang Nan > Cc: Arnaldo Carvalho de Melo > Cc: Alexei Starovoitov > Cc: Brendan Gregg > Cc: Daniel Borkmann > Cc: David Ahern > Cc: He Kuang > 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/1440151770-129878-16-git-send-email-wangnan0@huawei.com > --- [SNIP] > +static int prepare_bpf(void *obj_buf, size_t obj_buf_sz) > +{ > + int err; > + char errbuf[BUFSIZ]; > + > + err = bpf__prepare_load_buffer(obj_buf, obj_buf_sz, NULL); > + if (err) { > + bpf__strerror_prepare_load("[buffer]", false, err, errbuf, > + sizeof(errbuf)); > + fprintf(stderr, " (%s)", errbuf); > + return TEST_FAIL; > + } > + > + err = bpf__probe(); > + if (err) { > + bpf__strerror_load(err, errbuf, sizeof(errbuf)); > + fprintf(stderr, " (%s)", errbuf); > + if (getuid() != 0) geteuid() ? Thanks, Namhyung > + fprintf(stderr, " (try run as root)"); > + return TEST_FAIL; > + } > + > + err = bpf__load(); > + if (err) { > + bpf__strerror_load(err, errbuf, sizeof(errbuf)); > + fprintf(stderr, " (%s)", errbuf); > + return TEST_FAIL; > + } > + > + return 0; > +}