Description
The Linux kernel has grown in complexity over the years. Complete understanding of how it works via code inspection has become virtually impossible. Today, tracing is used to follow the kernel as it performs its complex tasks. Tracing is used today for much more than simply debugging. Its framework has become the way for other parts of the Linux kernel to enhance and even make possible new features. Live kernel patching is based on the infrastructure of function tracing, as well as BPF. It is now even possible to model the behavior and correctness of the system via runtime verification which attaches to trace points. There is still much more that is happening in this space, and this microconference will be the forum to explore current and new ideas.
Discuss the new libside [1] API/ABI which allows a kernel tracer and many user-space tracers to attach to static and dynamic instrumentation of user-space application.
This user-space library exposes a type system and a set of macros to help applications declare their instrumentation and insert instrumentation calls. It exposes APIs to kernel and user-space tracers so they can list and...
Currently, there are two different function return hook mechanisms: kretprobe (rethook) and function graph tracer. Both have similar but different ways to hook the function return. They both modify the return address on the stack (or link-register) with their trampoline code and save the correct return address to their own list for each task. The difference is how they allocate the per-task...
We'll first go through the history of "struct pt_regs" uses and abuses. Between ptrace, kprobe, ftrace, fprobe, kretprobe, rethook, perf, ebpf... There will be some ground to cover. This will be an opportunity to give an overview of all the tracing subsystems and how they build on one another by exchanging pt_regs structures.
We'll then spend time discussing "sparse pt_regs". These are...
RTLA suite of tools is part of tracing tools and, as such, depends on the kernel tracing infrastructure, from kernel tracers to libraries. This topic will discuss some limitations of these dependencies that allow rtla to perform better and add new functionalities. Among the requests, we can mention:
- On the kernel side:
- The ability to do histograms with ftrace: events (tracers...
Recently, function graph tracing has the new option of [showing the return value of the function][1]. Of course this could be producing some problems with functions that are void and the return is garbage. This could be fixed by using BTF.
Better yet, both function graph and the function tracer could possibly use BTF to show all arguments for all functions! But this would require a...
Performance Monitor Control Unit (PMCU) is a device that offloads PMU accesses from CPUs, handling the configuration, event switching, and counter reading of core PMUs on Kunpeng SoC. It facilitates fine-grained and multi-PMU-event CPU profiling, while the software overhead of accessing PMUs, as well as its impact on target workloads, is reduced. In the current PMU counting scheme, the target...
The presentation will present a brief technical status update on the project and then delve into the pitfalls we have encountered in the past months. Creative solutions for some problems will be presented, but the bulk of the presentation is focused on current unresolved pitfalls. The goal is to spark creative discussion towards resolving some of the issues we have encountered and to work...
[sframes][1] have been [added to binutiles][2], which can allow the kernel to do a user space stack trace without the need of frame pointers. But there are several issues to overcome.
- Requires reading user space that can fault (cannot be done in interrupt context)
- Perf and ftrace will need to postpone when the stack trace is done
- Can load in the sframe information from the elf...