linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Arnaldo Carvalho de Melo <acme@redhat.com>
To: Alexei Starovoitov <alexei.starovoitov@gmail.com>
Cc: Wang Nan <wangnan0@huawei.com>,
	ast@fb.com, lizefan@huawei.com, hekuang@huawei.com,
	Ingo Molnar <mingo@kernel.org>,
	linux-kernel@vger.kernel.org, pi3orama@163.com, joe@ovn.org,
	Jiri Olsa <jolsa@kernel.org>,
	acme@kernel.org
Subject: Re: [PATCH v3 10/30] perf clang: Add builtin clang support ant test case
Date: Mon, 5 Dec 2016 19:02:48 -0200	[thread overview]
Message-ID: <20161205210248.GA2247@redhat.com> (raw)
In-Reply-To: <20161205165055.GB79989@ast-mbp.thefacebook.com>

Em Mon, Dec 05, 2016 at 08:51:01AM -0800, Alexei Starovoitov escreveu:
> On Fri, Dec 02, 2016 at 01:44:40PM -0200, Arnaldo Carvalho de Melo wrote:
> > Em Sat, Nov 26, 2016 at 07:03:34AM +0000, Wang Nan escreveu:
> > > Add basic clang support in clang.cpp and test__clang() testcase. The
> > > first testcase checks if builtin clang is able to generate LLVM IR.
> > > 
> > > tests/clang.c is a proxy. Real testcase resides in
> > > utils/c++/clang-test.cpp in c++ and exports C interface to perf test
> > > subsystem.
> > > 
> > > Test result:
> > > 
> > >    $ perf test -v clang
> > >    51: Test builtin clang support                               :
> > >    51.1: Test builtin clang compile C source to IR              :
> > >    --- start ---
> > >    test child forked, pid 13215
> > >    test child finished with 0
> > >    ---- end ----
> > >    Test builtin clang support subtest 0: Ok
> > 
> > While testing this I noticed that the perf binary got huge, can't this
> > be done in some other way, i.e. using dynamic library?
> > 
> > [root@jouet ~]# size /tmp/perf
> >    text	   data	    bss	    dec	    hex	filename
> > 75333688	1421584	23962176	100717448	600d388 /tmp/perf
> > [root@jouet ~]#
> > 
> > I've built it with this:
> > 
> >   make LIBCLANGLLVM=1 O=/tmp/build/perf -C tools/perf install-bin
> > 
> > the resulting binary:
> > 
> > [acme@jouet linux]$ 
> > [acme@jouet linux]$ ls -la ~/bin/perf
> > -rwxr-xr-x. 2 acme acme 131689136 Dec  2 12:31 /home/acme/bin/perf
> > [acme@jouet linux]$ ls -lah ~/bin/perf
> > -rwxr-xr-x. 2 acme acme 126M Dec  2 12:31 /home/acme/bin/perf
> > [acme@jouet linux]$
> > 
> > Huge, after stripping it:
> > 
> > [acme@jouet linux]$ ls -la /tmp/perf
> > -rwxr-xr-x. 1 root root 76759056 Dec  2 12:33 /tmp/perf
> > [acme@jouet linux]$ ls -lah /tmp/perf
> > -rwxr-xr-x. 1 root root 74M Dec  2 12:33 /tmp/perf
> > [acme@jouet linux]$
> > 
> > Still huge :-\
> 
> yeah. it's kinda high. I'm guessing rpm llvm libs are in debug mode.
> Try llvm-config --build-mode --assertion-mode
> it should be Release OFF

Probably this was with 3.9 and built from git, quite a while ago, now I
removed it from /usr/local/ and installed what is in f25, but I fear it
will be insufficient, does 3.8 cuts it for what we're testing? Humm, it
looks like it will:

[root@jouet ~]# llc --version
LLVM (http://llvm.org/):
  LLVM version 3.8.0
  Optimized build.
  Built Mar 10 2016 (01:41:45).
  Default target: x86_64-unknown-linux-gnu
  Host CPU: broadwell

  Registered Targets:
    aarch64    - AArch64 (little endian)
    aarch64_be - AArch64 (big endian)
    amdgcn     - AMD GCN GPUs
    arm        - ARM
    arm64      - ARM64 (little endian)
    armeb      - ARM (big endian)
    bpf        - BPF (host endian)
    bpfeb      - BPF (big endian)
    bpfel      - BPF (little endian)
    cpp        - C++ backend
    nvptx      - NVIDIA PTX 32-bit
    nvptx64    - NVIDIA PTX 64-bit
    ppc32      - PowerPC 32
    ppc64      - PowerPC 64
    ppc64le    - PowerPC 64 LE
    r600       - AMD GPUs HD2XXX-HD6XXX
    systemz    - SystemZ
    thumb      - Thumb
    thumbeb    - Thumb (big endian)
    x86        - 32-bit X86: Pentium-Pro and above
    x86-64     - 64-bit X86: EM64T and AMD64
[root@jouet ~]# 

But I'm now running the container based tests to send a pull req, will
check later, after that.

- Arnaldo
 
> > But being a n00b on llvm/clang libraries, etc, my question goes back to:
> > can we have this using a libllvm.so or libclang.so dynamic libraries?
> 
> that can also work. The reason we build iovisor/bcc into single binary
> is to ease operational headache.

  reply	other threads:[~2016-12-05 21:03 UTC|newest]

Thread overview: 76+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-11-26  7:03 [PATCH v3 00/30] perf clang: Builtin clang and perfhook support Wang Nan
2016-11-26  7:03 ` [PATCH v3 01/30] tools lib bpf: Add missing BPF functions Wang Nan
2016-11-26 17:10   ` Alexei Starovoitov
2016-12-02 10:37   ` [tip:perf/core] " tip-bot for Wang Nan
2016-11-26  7:03 ` [PATCH v3 02/30] tools lib bpf: Add private field for bpf_object Wang Nan
2016-11-26 17:11   ` Alexei Starovoitov
2016-12-02 10:37   ` [tip:perf/core] " tip-bot for Wang Nan
2016-11-26  7:03 ` [PATCH v3 03/30] tools lib bpf: Retrive bpf_map through offset of bpf_map_def Wang Nan
2016-11-26 17:12   ` Alexei Starovoitov
2016-12-02 10:38   ` [tip:perf/core] " tip-bot for Wang Nan
2016-11-26  7:03 ` [PATCH v3 04/30] perf tools: Introduce perf hooks Wang Nan
2016-12-02 10:38   ` [tip:perf/core] " tip-bot for Wang Nan
2016-11-26  7:03 ` [PATCH v3 05/30] perf tools: Pass context to perf hook functions Wang Nan
2016-12-06  8:21   ` [tip:perf/core] " tip-bot for Wang Nan
2016-11-26  7:03 ` [PATCH v3 06/30] perf llvm: Extract helpers in llvm-utils.c Wang Nan
2016-12-06  8:21   ` [tip:perf/core] " tip-bot for Wang Nan
2016-11-26  7:03 ` [PATCH v3 07/30] tools build: Add feature detection for LLVM Wang Nan
2016-12-06  8:22   ` [tip:perf/core] " tip-bot for Wang Nan
2016-11-26  7:03 ` [PATCH v3 08/30] tools build: Add feature detection for clang Wang Nan
2016-12-06  8:22   ` [tip:perf/core] " tip-bot for Wang Nan
2016-11-26  7:03 ` [PATCH v3 09/30] perf build: Add clang and llvm compile and linking support Wang Nan
2016-12-06  8:23   ` [tip:perf/core] " tip-bot for Wang Nan
2016-11-26  7:03 ` [PATCH v3 10/30] perf clang: Add builtin clang support ant test case Wang Nan
2016-11-26 17:17   ` Alexei Starovoitov
2016-11-28  7:41     ` Wangnan (F)
2016-12-02 15:44   ` Arnaldo Carvalho de Melo
2016-12-05  2:36     ` Wangnan (F)
2016-12-05  4:41       ` Wangnan (F)
2017-01-17 13:38         ` Arnaldo Carvalho de Melo
2016-12-05 16:51     ` Alexei Starovoitov
2016-12-05 21:02       ` Arnaldo Carvalho de Melo [this message]
2016-12-05 21:48         ` Arnaldo Carvalho de Melo
2016-12-06  2:07           ` Wangnan (F)
2016-12-06 13:43             ` Arnaldo Carvalho de Melo
2016-12-06 19:19       ` Arnaldo Carvalho de Melo
2016-12-06 21:02         ` Arnaldo Carvalho de Melo
2016-12-06  8:23   ` [tip:perf/core] " tip-bot for Wang Nan
2016-11-26  7:03 ` [PATCH v3 11/30] perf clang: Use real file system for #include Wang Nan
2016-12-06  8:24   ` [tip:perf/core] " tip-bot for Wang Nan
2016-11-26  7:03 ` [PATCH v3 12/30] perf clang: Allow passing CFLAGS to builtin clang Wang Nan
2016-12-06  8:25   ` [tip:perf/core] " tip-bot for Wang Nan
2016-11-26  7:03 ` [PATCH v3 13/30] perf clang: Update test case to use real BPF script Wang Nan
2016-12-06  8:25   ` [tip:perf/core] " tip-bot for Wang Nan
2016-11-26  7:03 ` [PATCH v3 14/30] perf clang: Support compile IR to BPF object and add testcase Wang Nan
2016-11-26 17:25   ` Alexei Starovoitov
2016-11-28  6:32     ` Wangnan (F)
2016-11-28 10:31       ` Wangnan (F)
2016-11-28 19:33         ` Alexei Starovoitov
2016-12-06  8:26   ` [tip:perf/core] " tip-bot for Wang Nan
2016-11-26  7:03 ` [PATCH v3 15/30] perf clang: Compile BPF script use builtin clang support Wang Nan
2016-12-06  8:26   ` [tip:perf/core] perf clang: Compile BPF script using " tip-bot for Wang Nan
2016-11-26  7:03 ` [PATCH v3 16/30] perf clang: Pass full path to builtin clang Wang Nan
2016-11-26  7:03 ` [PATCH v3 17/30] perf clang: Pass CFLAGS " Wang Nan
2016-11-26  7:03 ` [PATCH v3 18/30] perf clang jit: Wrap llvm::Module using PerfModule Wang Nan
2016-11-26  7:03 ` [PATCH v3 19/30] perf clang jit: Insignt BPF and JIT functions in a Module Wang Nan
2016-11-26 17:32   ` Alexei Starovoitov
2016-11-26  7:03 ` [PATCH v3 20/30] perf clang jit: add PerfModule::doJIT to JIT perfhook functions Wang Nan
2016-11-26 17:29   ` Alexei Starovoitov
2016-11-28  6:42     ` Wangnan (F)
2016-11-26  7:03 ` [PATCH v3 21/30] perf clang jit: Export functions for jitted code Wang Nan
2016-11-26  7:03 ` [PATCH v3 22/30] perf clang jit: Actually JIT and hook in bpf loader Wang Nan
2016-11-26  7:03 ` [PATCH v3 23/30] perf clang jit: Collect the lowest address in maps section as map_base Wang Nan
2016-11-26  7:03 ` [PATCH v3 24/30] perf clang jit: Retrive fd of BPF map from its offset Wang Nan
2016-11-26  7:03 ` [PATCH v3 25/30] perf clang jit: Allow jitted perf hook access BPF maps Wang Nan
2016-11-26 17:09   ` Alexei Starovoitov
2016-11-26  7:03 ` [PATCH v3 26/30] perf clang: Link BPF functions declaration into perf Wang Nan
2016-11-26 17:40   ` Alexei Starovoitov
2016-11-30 16:12     ` Arnaldo Carvalho de Melo
2016-12-01  1:56       ` [PATCH v3 26/30 - cleanup] " Wang Nan
2016-11-26  7:03 ` [PATCH v3 27/30] perf clang: Declare BPF functions for BPF scripts automatically Wang Nan
2016-11-26  7:03 ` [PATCH v3 28/30] perf clang: Include helpers to BPF scripts Wang Nan
2016-11-26  7:03 ` [PATCH v3 29/30] perf clang builtin: Define hook helpers by default Wang Nan
2016-11-26  7:03 ` [PATCH v3 30/30] perf clang jit: Export getpid() to perf hook Wang Nan
  -- strict thread matches above, loose matches on Subject: below --
2016-12-07  1:57 [PATCH v3 10/30] perf clang: Add builtin clang support ant test case Alexei Starovoitov
2017-01-17 18:27 Alexei Starovoitov
2017-01-17 19:04 ` Arnaldo Carvalho de Melo

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20161205210248.GA2247@redhat.com \
    --to=acme@redhat.com \
    --cc=acme@kernel.org \
    --cc=alexei.starovoitov@gmail.com \
    --cc=ast@fb.com \
    --cc=hekuang@huawei.com \
    --cc=joe@ovn.org \
    --cc=jolsa@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=lizefan@huawei.com \
    --cc=mingo@kernel.org \
    --cc=pi3orama@163.com \
    --cc=wangnan0@huawei.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).