Linux Observability with BPF

Errata for Linux Observability with BPF

Submit your own errata for this product.

The errata list is a list of errors and their corrections that were found after the product was released. If the error was corrected in a later version or reprint the date of the correction will be displayed in the column titled "Date Corrected".

The following errata were submitted by our customers and approved as valid errors by the author or editor.

Color key: Serious technical mistake Minor technical mistake Language or formatting error Typo Question Note Update

Version Location Description Submitted By Date submitted Date corrected
Chapter 4. BPF Utilities - Inspecting BPF Programs 4th paragraph

"pbftool" in the paragraph and example command.

Yuya Kusakabe  May 30, 2019 
Page 1
Chapter 1. Introduction 2nd Paragraph

"This outage could be classified as a Blak Swan event,"
Should be Black Swan event.

Anonymous  Jul 04, 2019 
Chapter 2. Running your first BPF Programs Writing BPF programs

The most common way to write BPF programs is by using a subset of C compiled with LLVM. LLVM. LLVM is

Anonymous  Jul 05, 2019 
Chapter 1, First paragraph under Architecture header

The last word of the first sentence is misspelled:

"BPF’s architecture within the kernel is fastinating."

Last word should be: fascinating.

Anonymous  Sep 03, 2019 
Chapter 1. Introduction BPF History 8th Paragraph

We’ll talk about hot use use it to load and unload programs, as well as maps.

Anonymous  Jul 05, 2019 
Page 8-9

The information on compiling and running the Hello World example is entirely inadequate. On Ubuntu—and I assume most distros—the bpf and bcc tools need to be installed, which is not discussed. The build script includes several path-relative references with no discussion of where it should be located. The helper is referred to as bpf_load.h, but from everything I can see, it should be loader.c.

Several time the text references the GitHub repository containing this example, which would provide context. But the repo it references only contains code for chapter 6-8, and contains very little discussion.

I've made my attempt to run this code reproducible with Vagrant and Ansible, an approach that might help this book: Beginning a technical topic without sufficient context is hard, and not something I would expect from this publisher. It is disappointing to find this book so unusable from the start.

Note from the Author or Editor:
I acknowledge the mistakes.
Please follow this issue - we are working on making the examples reproducible trough a Vagrant environment.

Anonymous  Dec 08, 2019 
Page 55-56
Uretprobes section

The entire code section is messed up. The first bit of code looks like it's a copy paste from the previous chapter, but without the imports. The numbers describe non-existant code. The second section has numbers 2 and 3 shifted by one line too far.

Note from the Author or Editor:
In particular, I acknowledge the mistakes.
Please follow this issue - we are working on making the examples reproducible trough a Vagrant environment.

Mikolaj Pawlikowski  Dec 09, 2019