LTTng session rotation: the practical way to do continuous tracing


Rotating engine

Many LTTng users want to inspect traces while their tracing session continues to run in the background, but that's only possible with tools that support the "live" protocol. Historically, it has not been possible to process traces "offline". To be able to read, modify, or delete a trace file, you need to interrupt the tracing session. When you're investigating long-lived issues that can take days to track down, stopping the session to see whether the bug has triggered opens a window where you might miss it. And leaving the session running can result in huge traces that can take days to process.

Bringing .NET application performance analysis to Linux

Microscopic analysis photo

Both the Windows and Linux ecosystems have a swath of battle-hardened performance analysis and investigation tools. But up until recently, developers and platform engineers could use none of these tools with .NET applications on Linux.

Getting them to work with .NET involved collaboration across many open source communities. The .NET team at Microsoft and the LTTng community worked together to bring .NET application performance analysis to Linux. Since one of this project's goals was to avoid reinventing the wheel—and to allow existing workflows to be used for .NET applications on Linux—the .NET team chose to enable usage of popular Linux tools such as LTTng and perf to enable performance analysis of .NET core applications.

membarrier system call performance and the future of Userspace RCU on Linux


Membarrier photo

A few months ago on the lttng-dev mailing list, Milian Wolff reported that his test application was seeing noticeable startup delays because it was linked against liblttng-ust. He didn't start a tracing session and his test program didn't call any code in liblttng-ust. In fact, the test program contained fewer lines of code than a standard Hello, World! application:

int main()
	return 0;