From: "Naveen N. Rao" <naveen.n.rao@linux.vnet.ibm.com>
To: Jesper Dangaard Brouer <brouer@redhat.com>
Cc: netdev@vger.kernel.org, linux-kbuild@vger.kernel.org,
bblanco@plumgrid.com, borkmann@iogearbox.net,
alexei.starovoitov@gmail.com
Subject: Re: [net-next PATCH V3 3/5] samples/bpf: add a README file to get users started
Date: Wed, 27 Apr 2016 14:05:22 +0530 [thread overview]
Message-ID: <20160427083522.GA15073@naverao1-tp.in.ibm.com> (raw)
In-Reply-To: <20160427073023.29959.17816.stgit@firesoul>
On 2016/04/27 09:30AM, Jesper Dangaard Brouer wrote:
> Getting started with using examples in samples/bpf/ is not
> straightforward. There are several dependencies, and specific
> versions of these dependencies.
>
> Just compiling the example tool is also slightly obscure, e.g. one
> need to call make like:
>
> make samples/bpf/
>
> Do notice the "/" slash after the directory name.
>
> Signed-off-by: Jesper Dangaard Brouer <brouer@redhat.com>
> ---
> samples/bpf/README.rst | 75 ++++++++++++++++++++++++++++++++++++++++++++++++
> 1 file changed, 75 insertions(+)
> create mode 100644 samples/bpf/README.rst
Thanks for adding this! A few nits...
>
> diff --git a/samples/bpf/README.rst b/samples/bpf/README.rst
> new file mode 100644
> index 000000000000..1fa157db905b
> --- /dev/null
> +++ b/samples/bpf/README.rst
> @@ -0,0 +1,75 @@
> +eBPF sample programs
> +====================
> +
> +This kernel samples/bpf directory contains a mini eBPF library, test
^^^^^^^^^^^^^^^^^^
'This directory contains' should suffice.
> +stubs, verifier test-suite and examples for using eBPF.
> +
> +Build dependencies
> +==================
> +
> +Compiling requires having installed:
> + * clang >= version 3.4.0
> + * llvm >= version 3.7.1
> +
> +Note that LLVM's tool 'llc' must support target 'bpf', list with command::
> +
> + $ llc --version
'llc --version | grep bpf' is probably simpler?
> + LLVM (http://llvm.org/):
> + LLVM version 3.x.y
> + [...]
> + Host CPU: xxx
> +
> + Registered Targets:
> + [...]
> + bpf - BPF (host endian)
> + bpfeb - BPF (big endian)
> + bpfel - BPF (little endian)
> + [...]
> +
> +Kernel headers
> +--------------
> +
> +There are usually dependencies to header files of the current kernel.
> +To avoid installing devel kernel headers system wide, as a normal
> +user, simply call::
> +
> + make headers_install
> +
> +This will creates a local "usr/include" directory in the git/build top
> +level directory, that the make system automatically pickup first.
> +
> +Compiling
> +=========
> +
> +For compiling goto kernel top level build directory and run make like::
For building the BPF samples, issue the below command from the kernel
root directory:
> +
> + make samples/bpf/
> +
> +Do notice the "/" slash after the directory name.
> +
> +Manually compiling LLVM with 'bpf' support
> +------------------------------------------
> +
> +Since version 3.7.0, LLVM adds a proper LLVM backend target for the
> +BPF bytecode architecture.
> +
> +By default llvm will build all non-experimental backends including bpf.
> +To generate a smaller llc binary one can use::
> +
> + -DLLVM_TARGETS_TO_BUILD="BPF;X86"
Is the X86 target really needed?
> +
> +Quick sniplet for manually compiling LLVM and clang
> +(build dependencies are cmake and gcc-c++)::
> +
> + $ git clone http://llvm.org/git/llvm.git
> + $ cd llvm/tools
> + $ git clone --depth 1 http://llvm.org/git/clang.git
> + $ cd ..; mkdir build; cd build
> + $ cmake .. -DLLVM_TARGETS_TO_BUILD="BPF;X86"
^^^
Here too.
- Naveen
> + $ make -j $(getconf _NPROCESSORS_ONLN)
> +
> +It is also possible to point make to the newly compiled 'llc' command
> +via redefining LLC on the make command line::
> +
> + make samples/bpf/ LLC=~/git/llvm/build/bin/llc
> +
>
next prev parent reply other threads:[~2016-04-27 8:35 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-04-27 7:30 [net-next PATCH V3 0/5] samples/bpf: Improve user experience Jesper Dangaard Brouer
2016-04-27 7:30 ` [net-next PATCH V3 1/5] samples/bpf: add back functionality to redefine LLC command Jesper Dangaard Brouer
2016-04-27 8:06 ` Naveen N. Rao
2016-04-27 7:30 ` [net-next PATCH V3 2/5] samples/bpf: Makefile verify LLVM compiler avail and bpf target is supported Jesper Dangaard Brouer
2016-04-27 8:54 ` Naveen N. Rao
2016-04-27 7:30 ` [net-next PATCH V3 3/5] samples/bpf: add a README file to get users started Jesper Dangaard Brouer
2016-04-27 8:35 ` Naveen N. Rao [this message]
2016-04-27 9:16 ` Jesper Dangaard Brouer
2016-04-27 11:00 ` Naveen N. Rao
2016-04-27 7:30 ` [net-next PATCH V3 4/5] samples/bpf: allow make to be run from samples/bpf/ directory Jesper Dangaard Brouer
2016-04-27 7:30 ` [net-next PATCH V3 5/5] samples/bpf: like LLC also verify and allow redefining CLANG command Jesper Dangaard Brouer
2016-04-28 2:55 ` [net-next PATCH V3 0/5] samples/bpf: Improve user experience David Miller
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=20160427083522.GA15073@naverao1-tp.in.ibm.com \
--to=naveen.n.rao@linux.vnet.ibm.com \
--cc=alexei.starovoitov@gmail.com \
--cc=bblanco@plumgrid.com \
--cc=borkmann@iogearbox.net \
--cc=brouer@redhat.com \
--cc=linux-kbuild@vger.kernel.org \
--cc=netdev@vger.kernel.org \
/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).