Linux Kernel: Behavioral Analysis and Visualization

Session information has not yet been published for this event.


One Line Summary

A hands on session explaining behavioral analysis in the kernel and the tooling built around it. The eventual goal is to have "behaviors" defined for a wide range of sub-systems in the Linux kernel.


What is a Behavior?

Given a relevant scenario/workload on a system, some examples of behaviours are:
The scheduler is expected to spread/pack tasks
The I/O scheduler should starve writes and prioritize reads
The thermal governor should maintain the temperature within +/- threshold
The tooling presented allows the parsing and visualization of FTrace data to formulate quantitative conditions which express behaviors and help in building assertions to verify them. The goal of behavioral analysis is to allow the kernel developers to easily track regression while developing or modifying their ever so complicated kernel sub-systems.

The tooling that will be presented is:

TRAPpy (Trace Analysis and plotting in Python)

A framework to allow kernel developers easy access to kernel tracing data and facilitates visualization and analysis. TRAPpy also provides a grammar which allows formulating expressions which span across multiple kernel sub-systems.

BART (Behavioral Analysis and Regression Toolkit)

A framework built on top of TRAPpy that provides behavioral assertions for different subsystems and abstract the traces from the user. For example, a scheduler developer aiming to write an energy efficient scheduler on a heterogeneous /Big.LITTLE system (like most cell phones) could assert the residencies of the workload over CPU topologies e.g. assertClusterResidency(BIG_CPU, “>75 % of the time”) BART was presented in the Thermal Micro-conference last year at LPC and I would like to present it , along with TRAPpy this year to a wider audience.

Presentation Materials