Performance Analysis in Linux Storage Stack with BPF

Monday, February 25, 2019 - 3:30 pm5:00 pm

Taeung Song, KossLab, and Daniel T. Lee, The University of Soongsil


How can we deeply analyze and trace performance issues in the Linux Storage Stack?

Many monitoring and benchmark tools help us to find bottlenecks and problems through system profiling. However, it is pretty tricky to dig deeper into the root cause on code/function level because of complex execution flow (e.g. multiple contexts or async flow). In this tutorial, we introduce in-kernel BPF technology and practice analyzing performance issues in the Linux Storage Stack using several tracing tools (BPF, uftrace, ctracer, and perf) with attendees step-by-step. This session is targeted towards administrators, researchers, and developers.

BPF is a technology that allows safely injecting and executing custom code in the kernel at runtime, an unprecedented functionality. With BPF, by leveraging the injected custom code in a kernel, profiling and tracing is low overhead, and makes more richer introspection available.

Taeung Song, KossLab

Taeung is a Software Engineer in KOSSLAB (Korea Opensource Software Developers Lab) and Opensource Contributor in regard to Tracing & Profiling technology such as perf, uftrace, BPF, etc.

Daniel T. Lee, University Student

Daniel T. Lee is a Bachelor's degree student at the University of Soongsil and has a deep enthusiasm for Linux. He has been contributing to uftrace: Function (graph) tracer since 2018. He is passionate about tracing and profiling, and he really loves cloud engineering. He has a deep interest in this field, has written a book about API gateways entitled "Kong: Becoming a King of API Gateways," and has shared many technical presentations.

@conference {230036,
author = {Taeung Song and Daniel T. Lee},
title = {Performance Analysis in Linux Storage Stack with {BPF}},
year = {2019},
address = {Boston, MA},
publisher = {USENIX Association},
month = feb