LWN: Comments on "Another attempt to address the tracepoint ABI problem" https://lwn.net/Articles/737530/ This is a special feed containing comments posted to the individual LWN article titled "Another attempt to address the tracepoint ABI problem". en-us Thu, 21 Aug 2025 12:17:50 +0000 Thu, 21 Aug 2025 12:17:50 +0000 https://www.rssboard.org/rss-specification lwn@lwn.net Another attempt to address the tracepoint ABI problem https://lwn.net/Articles/737895/ https://lwn.net/Articles/737895/ jikos <div class="FormattedComment"> That makes is super-fragile though. GCC does a lot of optimizations on static functions that break x86 ABI (IPA-RA for example).<br> </div> Wed, 01 Nov 2017 16:25:49 +0000 Another attempt to address the tracepoint ABI problem https://lwn.net/Articles/737859/ https://lwn.net/Articles/737859/ SelaLWN <div class="FormattedComment"> It's ABI-sensitive, but if a language or runtime decides to pass arguments in a heap location or something that's not the standard ABI, it won't work (i.e. debuginfo isn't used).<br> </div> Wed, 01 Nov 2017 14:33:35 +0000 Another attempt to address the tracepoint ABI problem https://lwn.net/Articles/737791/ https://lwn.net/Articles/737791/ jikos <div class="FormattedComment"> BTW how does that tool access the function parameters? Does it assume that x86_64 ABI is always being followed, or do you require DWARF2 debuginfo data for those?<br> </div> Tue, 31 Oct 2017 15:39:00 +0000 Another attempt to address the tracepoint ABI problem https://lwn.net/Articles/737640/ https://lwn.net/Articles/737640/ SelaLWN <div class="FormattedComment"> There is already support for running a BPF program when an arbitrary kernel function is called, with access to that function's arguments -- this can be done using kprobes. Indeed, in BCC (<a href="https://github.com/iovisor/bcc">https://github.com/iovisor/bcc</a>) we have a large collection of BPF-based tools that rely on tracepoints when available, and kprobes when not. Over the last 1.5 years, we had multiple tools break because of intentional and unintentional changes to kernel functions when using kprobes; not so much when using tracepoints.<br> </div> Sat, 28 Oct 2017 09:15:56 +0000 Another attempt to address the tracepoint ABI problem https://lwn.net/Articles/737624/ https://lwn.net/Articles/737624/ jhoblitt <div class="FormattedComment"> It sounds like there are conflicting use cases for tracepoints: kernel debugging and exporting data to userspace. The powertop example begs the question of why a tracing framework is needed to collect process statics (looks like wake ups). Couldn't that be accomplished by enhanced process statics that could be exposed via sysfs when enabled?<br> </div> Fri, 27 Oct 2017 17:43:49 +0000 Another attempt to address the tracepoint ABI problem https://lwn.net/Articles/737622/ https://lwn.net/Articles/737622/ davecb <div class="FormattedComment"> We had a variant of that in Solaris, specifically in the libraries, which had to be both stable and changable (;-))<br> <p> David J. Brown attached version numbers to function entry points, like SUNW_1.1 (for something public: SUNWprivate for everything else). If the entry point changed, even if the function signature was the same, the number got bumped to SUNW_1.2.<br> <p> If a tracepoint points to a function to attach a BPF script to, the script for that tracepoint can check if the function version has changed, and if it has, the person using it can go and do a "git blame" hunt to see what they need to do.<br> <p> --dave<br> see also <a href="https://www.usenix.org/legacy/publications/library/proceedings/als00/2000papers/papers/full_papers/browndavid/browndavid_html/">https://www.usenix.org/legacy/publications/library/procee...</a> and my note about it, <a href="https://leaflessca.wordpress.com/2017/02/12/dll-hell-and-avoiding-an-np-complete-problem/">https://leaflessca.wordpress.com/2017/02/12/dll-hell-and-...</a><br> </div> Fri, 27 Oct 2017 17:30:31 +0000 Another attempt to address the tracepoint ABI problem https://lwn.net/Articles/737617/ https://lwn.net/Articles/737617/ josh <div class="FormattedComment"> <font class="QuotedText">&gt; Instead, support will be added to make it easy for an application to attach a BPF script to any function in the kernel, with access to that function's arguments. That should give tools access to the information they need, and may make it possible to (eventually) remove many of the existing explicit tracepoints.</font><br> <p> <font class="QuotedText">&gt; Arnd Bergmann asked what would happen if a popular script breaks as the result of the removal of a function; Torvalds replied that it would not see it as a regression that needs to be fixed.</font><br> <p> Sounds like the "attach a BPF script to any function" mechanism would have an ABI like that of init_module or finit_module: the thing it loads lives inside the kernel, making it fall under the kernel's internal ABI (lack of) guarantees rather than the userspace ABI guarantees.<br> </div> Fri, 27 Oct 2017 15:14:27 +0000