Linux Low-Latency Tracing for Multicore Hard Real-Time Systems
Abstract
Real-time systems have always been difficult to monitor and debug because of the timing constraints which rule out any tool significantly impacting the system latency and performance. Tracing is often the most reliable tool available for studying real-time systems. The real-time behavior of Linux systems has improved recently and it is possible to have latencies in the low microsecond range. Therefore, tracers must ensure that their overhead is within that range and predictable and scales well to multiple cores. The LTTng
2.0 tools have been optimized for multicore performance, scalability, and flexibility. We used and extended the real-time verification tool rteval
to study the impact of LTTng
on the maximum latency on hard real-time applications. We introduced a new real-time analysis tool to establish the baseline of real-time system performance and then to measure the impact added by tracing the kernel and userspace (UST) with LTTng
. We then identified latency problems and accordingly modified LTTng-UST
and the procedure to isolate the shielded real-time cores from the RCU interprocess synchronization routines. This work resulted in extended tools to measure the real-time properties of multicore Linux systems, a characterization of the impact of LTTng
kernel and UST tracing tools, and improvements to LTTng
.