bcc: BPF Compiler Collection using eBPF #730
Labels
Algorithms
Sorting, Learning or Classifying. All algorithms go here.
Automation
Automate the things
New-Label
Choose this option if the existing labels are insufficient to describe the content accurately
Observability
Instrumentation and observation of running systems
openai
OpenAI APIs, LLMs, Recipes and Evals
Papers
Research papers
programming-languages
Topics related to programming languages and their features.
bcc/README.md at master · iovisor/bcc
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:
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.
Screenshot
This example traces a disk I/O kernel function, and populates an in-kernel power-of-2 histogram of the I/O size. For efficiency, only the histogram summary is returned to user-level.
The above output shows a bimodal distribution, where the largest mode of 800 I/O was between 128 and 255 Kbytes in size.
See the source: bitehist.py. What this traces, what this stores, and how the data is presented, can be entirely customized. This shows only some of many possible capabilities.
Installing
See INSTALL.md for installation steps on your platform.
FAQ
See FAQ.txt for the most common troubleshoot questions.
Reference guide
See docs/reference_guide.md for the reference guide to the bcc and bcc/BPF APIs.
Contents
Some of these are single files that contain both C and Python, others have a pair of .c and .py files, and some are directories of files.
Tracing
Examples
Tools
Memory and Process Tools
Performance and Time Tools
CPU and Scheduler Tools
Suggested labels
{'label-name': 'BPF-Toolkit', 'label-description': 'Tools and examples for efficient kernel tracing and manipulation using extended BPF (Berkeley Packet Filters).', 'gh-repo': 'https://github.com/iovisor/bcc/blob/master/README.md?plain=1', 'confidence': 52.11}
The text was updated successfully, but these errors were encountered: