lkml.org 
[lkml]   [2015]   [Jul]   [15]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: perf test LLVM was: Re: [GIT PULL 00/39] perf tools: filtering events using eBPF programs


On 2015/7/14 23:36, Arnaldo Carvalho de Melo wrote:
> Em Thu, Jul 09, 2015 at 12:35:03PM +0000, Wang Nan escreveu:
>> Hi Arnaldo,
>>
>> The following changes since commit 3381a29cbec5447086c0f726ee9a88c02e60becc:
>>
>> bpf tools: Collect map definitions from 'maps' section (2015-07-07 13:41:45 -0300)
>>
>> are available in the git repository at:
>>
>> https://github.com/WangNan0/linux.git perf/ebpf-for-acme
>>
>> for you to fetch changes up to 072b826c5dc6b2031f4f21c59c57eb6ca1dfa7c0:
> So, this is really nice:
>
> 38: Test LLVM searching and compiling :ERROR: unable to find clang.
> Hint: Try to install latest clang/llvm to support BPF. Check your $PATH
> and 'clang-path' option in [llvm] section of ~/.perfconfig.
> LLVM 3.7 or newer is required. Which can be found from http://llvm.org
> You may want to try git trunk:
> git clone http://llvm.org/git/llvm.git
> and
> git clone http://llvm.org/git/clang.git
>
> Or fetch the latest clang/llvm 3.7 from pre-built llvm packages for
> debian/ubuntu:
> http://llvm.org/apt
>
> If you are using old version of clang, change 'clang-bpf-cmd-template'
> option in [llvm] section of ~/.perfconfig to:
>
> "$CLANG_EXEC $CLANG_OPTIONS $KERNEL_INC_OPTIONS \
> -working-directory $WORKING_DIR -c $CLANG_SOURCE \
> -emit-llvm -o - | /path/to/llc -march=bpf -filetype=obj -o -"
> (Replace /path/to/llc with path to your llc)
>
> FAILED!
> [acme@zoo linux]$
>
> I have the trees cloned and plan to follow these instructions to have this test
> passing, to then move on to the next patches, but one request, please change
> the above to produce:
>
> 38: Test LLVM searching and compiling :(no clang) Ok run 'perf test -v LLVM' for instructions on having a clang environment

The output format you desire is hard to implement, because 'Ok' is printed
by the parent process. We have to find a way to allow child process to pass
'run 'perf test -v LLVM' for ...' to parent, then parent can print it
after 'Ok'.

I change this test as follow:


*Case 1*
When user don't set any [llvm] option in his/her ~/.perfconfig, and 'clang'
is not found in $PATH:

# perf test 'LLVM'
38: Test LLVM searching and compiling : (no
clang, try 'perf test -v LLVM') Skip

and:

# perf test -v 'LLVM'
38: Test LLVM searching and compiling :
--- start ---
test child forked, pid 163505
ERROR: unable to find clang.
Hint: Try to install latest clang/llvm to support BPF. Check your $PATH
...

test child finished with -1
---- end ----
Test LLVM searching and compiling: FAILED!

*Case 2*

If clang can be found or user set something in his/her ~/.perfconfig:
# cat << EOF > ~/.perfconfig
> [llvm]
> clang-path = "/usr/bin/false"
> EOF
# perf test 'LLVM'
38: Test LLVM searching and compiling : (use -v
to see error message) FAILED!

# perf test -v 'LLVM'
38: Test LLVM searching and compiling :
--- start ---
test child forked, pid 20712
Kernel build dir is set to /lib/modules/3.12.28-4-default/build
set env: KBUILD_DIR=/lib/modules/3.12.28-4-default/build
...
ERROR: unable to compile -
Hint: Check error message shown above.
LLVM 3.7 or newer is required. Which can be found from
http://llvm.org
...
test child finished with -1
---- end ----
Test LLVM searching and compiling: FAILED!

*Case 3*
If everything is okay:
# perf test 'LLVM'
38: Test LLVM searching and compiling : Ok

Here is the newest pull request:

The following changes since commit 101ef9b4f5c70dbfffa0186102c1014bd81a4ec7:

bpf tools: Link all bpf objects onto a list (2015-07-13 18:48:17 -0300)

are available in the git repository at:

https://github.com/WangNan0/linux.git perf/ebpf-for-acme

for you to fetch changes up to a20f387a54aa38c3cae70775273ff9d69a16d0c6:

perf tools: Support attach BPF program on uprobe events (2015-07-15
10:39:24 +0000)

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

I'll posted a new 'perf tests: Add LLVM test for eBPF on-the-fly
compiling' by replying
the old one, so you can leave your comment message there if you want.

Thank you.

> 'perf test' will accept either '38' or any substring in the test description and
> will run just the ones specified, and with -v we will spare people not interested
> in this eBPF support of these nice verbose instructions :-)
>
> If we find clang but then fail to build, ok, then this is a hard error, I think,
> and 'perf test' should FAIL that test.
>
> Regards,
>
> - Arnaldo




\
 
 \ /
  Last update: 2015-07-15 13:21    [W:0.477 / U:0.196 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site