So, it looks like work has not progressed well on upstreaming LTTng. That’s… a shame, to say the least. Currently in NixOS unstable, LTTng is broken with the Linux latest kernels (or at least, it was with my setup, there may very well be something wrong with my setup), and I’ve given up trying to sort it out. I think it’s time to move on.
If you’re familiar with what these tracing frameworks are capable of, it’s really frustrating to not have them; Linux is perfectly capable of having advanced tracing capabilities that can cross kernel and userspace, especially with all of the advanced facilities we have nowadays, but the obvious option, SystemTap, really never felt like the right solution to me. I always just wanted DTrace…
(If you have no idea what the hell I mean by “tracing” or why anyone should care about DTrace, I think Bryan Cantrill’s talk about Dtrace at Google in 2007 is pretty interesting.)
And, “DTrace” does exist for Linux, outside of unmaintained out-of-tree kernel modules, and Gentoo Linux even has shipped it, apparently. DTrace 2.0 is based on BPF and implemented entirely in userland with only optional kernel patches, and is said to have near-parity with the old DTrace port for Linux. Sounds very promising if true. Unfortunately, it’s not in NixOS, and honestly, I can find almost nothing talking about this, other than some talk about Gentoo having shipped it. It doesn’t seem to be mentioned on the DTrace Wikipedia article. Am I missing a reason why nobody is talking about this?
If it’s really userspace and just needs BTF data, then it should surely work on NixOS, right? I’m really surprised that nobody has done this yet, and it makes me paranoid that there’s either something really wrong with this DTrace 2.0 thing. I’ll probably take a look at trying to compile and use DTrace 2.0 on NixOS… but I’m sorta weirded out right now.
Curious to hear if anyone has any thoughts.