Remove BPF
article thumbnail

USENIX LISA2021 BPF Internals (eBPF)

Brendan Gregg

For USENIX LISA2021 I gave a 40 minute deep dive talk on BPF internals for Linux, focusing on observability tracing tools. Since there are already BPF internals references online (listed in this post) I used the opportunity to create some new content, showing how bpftrace instrumentation works from user space down to machine code.

Website 145
article thumbnail

Tips and Tricks for Writing Linux BPF Applications With libbpf

DZone

I had read an article on BPF portability and another on BCC to libbpf conversion , and I used what I learned to convert my previously submitted bcc-tools to libbpf-tools. See Why We Switched from bcc-tools to libbpf-tools for BPF Performance Analysis.). I ended up converting nearly 20 tools. It was fun and I learned a lot.

Database 179
Insiders

Sign Up for our Newsletter

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Trending Sources

article thumbnail

BPF binaries: BTF, CO-RE, and the future of BPF perf tools

Brendan Gregg

Two new technologies, BTF and CO-RE, are paving the way for BPF to become a billion dollar industry. BTF and CO-RE eliminate these dependencies at runtime, not only making BPF more practical for embedded Linux environments, but for adoption everywhere. The BCC project has a collection of these, called libbpf tools.

C++ 145
article thumbnail

Why We Switched from bcc-tools to libbpf-tools for Linux BPF Performance Analysis

DZone

A practical solution is Berkeley Packet Filter (BPF), a highly flexible, efficient virtual machine that runs in the Linux kernel. BPF is mainly used for networking, tracing, and security. Of all the kinds of failures, kernel failures may be the most difficult to analyze and simulate.

article thumbnail

BPF Theremin, Tetris, and Typewriters

Brendan Gregg

For my AWS re:Invent talk on BPF Performance Analysis at Netflix, I began with a demo of "BPF superpowers" (aka eBPF). from __future__ import print_function from bcc import BPF import pygame, numpy, pygame.sndarray # Sound setup sampleRate = 44100 pygame.mixer.pre_init(sampleRate, -16, 1). usr/bin/python # # iwlstrength.py

C++ 102
article thumbnail

BPF: A New Type of Software

Brendan Gregg

At Netflix we have 15 BPF programs running on cloud servers by default; Facebook has 40. BPF originally stood for Berkeley Packet Filter, but has been extended in Linux to become a generic kernel execution engine, capable of running a new type of user-defined and kernel-mode applications.

Software 105
article thumbnail

A Gentle Intro to eBPF

DZone

You'll see the term BPF in Linux source code, and you'll see BPF and eBPF used interchangeably in tooling and documentation. The original BPF is sometimes referred to as cBPF (classic BPF) to distinguish it from eBPF. IMPORTANT NOTE: eBPF is now a standalone term that doesn’t stand for anything.

Internet 195