summaryrefslogtreecommitdiffstats
path: root/development/bcc/README
blob: ed001ad7fedae62ab483ee68c5c9dc12b12cadc4 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
BPF Compiler Collection (BCC)

BCC is a toolkit for creating efficient kernel tracing and
manipulation programs, and includes several useful tools and examples.
It makes use of extended BPF (Berkeley Packet Filters), formally known
as eBPF, a new feature that was first added to Linux 3.15. Much of
what BCC uses requires Linux 4.1 and above.

eBPF was described by Ingo Molnár as:

One of the more interesting features in this cycle is the ability to
attach eBPF programs (user-defined, sandboxed bytecode executed by the
kernel) to kprobes. This allows user-defined instrumentation on a live
kernel image that can never crash, hang or interfere with the kernel
negatively.

BCC makes BPF programs easier to write, with kernel instrumentation in
C (and includes a C wrapper around LLVM), and front-ends in Python and
lua. It is suited for many tasks, including performance analysis and
network traffic control.