LWN: Comments on "How to unbreak LTTng" https://lwn.net/Articles/817988/ This is a special feed containing comments posted to the individual LWN article titled "How to unbreak LTTng". en-us Sun, 26 Oct 2025 11:37:07 +0000 Sun, 26 Oct 2025 11:37:07 +0000 https://www.rssboard.org/rss-specification lwn@lwn.net How to unbreak LTTng https://lwn.net/Articles/818852/ https://lwn.net/Articles/818852/ mpr22 <div class="FormattedComment"> Modules include things like "device driver to operate an FPGA payload that has less than one monkeysphere of users, most of whom know the driver author personally".<br> </div> Tue, 28 Apr 2020 22:06:37 +0000 How to unbreak LTTng https://lwn.net/Articles/818848/ https://lwn.net/Articles/818848/ ecree <div class="FormattedComment"> <font class="QuotedText">&gt; It’s (in many cases) a huge amount of ongoing work</font><br> <p> Maintaining an in-tree module is *way* less work than maintaining an out-of-tree one. Heck, most of the time you just have to say "Ack" on the patches that the person changing some kernel infrastructure _writes for you_ to keep your module working. Whereas out-of-tree you end up with elaborate compatibility scripts, that you have to keep updated without any outside help, unless you're happy for your module to either only build on the latest kernel, or be tied to 2.6.32 forever 'cos that's what was ubiquitous when you started the project.<br> <p> If it's tight enough with the kernel to be a module (rather than a userspace executable, using the APIs that are actually designed to be stable), then it belongs in the upstream tree; and if it's not good enough quality to be upstream (even in staging or behind a 'default n' kconfig) then it doesn't belong anywhere.<br> </div> Tue, 28 Apr 2020 21:35:23 +0000 How to unbreak LTTng https://lwn.net/Articles/818598/ https://lwn.net/Articles/818598/ ballombe <div class="FormattedComment"> <font class="QuotedText">&gt; You can still freely use AOSP and ignore those requirements as long as you don't call it Android, and some large companies that compete with Google already do that, which makes it harder to argue that Google is being anti-competitive here.)</font><br> <p> True, however if you do not call it Android, you cannot ship the Google apps with it. So there are some real consequences.<br> </div> Fri, 24 Apr 2020 16:00:28 +0000 How to unbreak LTTng https://lwn.net/Articles/818401/ https://lwn.net/Articles/818401/ pizza <div class="FormattedComment"> <font class="QuotedText">&gt; which makes it harder to argue that Google is being anti-competitive here.</font><br> <p> You forget that Google is obviously the only reason why $DomesticBusinessSector is not making lots of money, so any restrictions they impose upon folks using their stuff is clearly anticompetitive behavior that must be harshly punished.<br> <p> (I'm not saying I agree with this, but many others do)<br> </div> Wed, 22 Apr 2020 21:15:33 +0000 How to unbreak LTTng https://lwn.net/Articles/818397/ https://lwn.net/Articles/818397/ excors <div class="FormattedComment"> Google already has a big list of "if you do that, you can't call it Android" requirements, including requirements on specific Linux kernel features: <a href="https://source.android.com/compatibility/android-cdd">https://source.android.com/compatibility/android-cdd</a><br> <p> (You can still freely use AOSP and ignore those requirements as long as you don't call it Android, and some large companies that compete with Google already do that, which makes it harder to argue that Google is being anti-competitive here.)<br> </div> Wed, 22 Apr 2020 20:26:19 +0000 How to unbreak LTTng https://lwn.net/Articles/818389/ https://lwn.net/Articles/818389/ Wol <div class="FormattedComment"> Well, Google is just using Trademark Law in exactly the manner it was meant to be used. All those companies complaining won't get very far in any sane jurisdiction (yes, I know, since when can any country claim to have a sane jurisdiction ...)<br> <p> Cheers,<br> Wol<br> </div> Wed, 22 Apr 2020 18:41:16 +0000 How to unbreak LTTng https://lwn.net/Articles/818380/ https://lwn.net/Articles/818380/ corbet That is already a part of the plan as I understand it. The kernel will become part of the generic system image, so it's provided by Google, not the device vendors, who are limited to providing kernel modules. They they will indeed not be able to set that config flag. Wed, 22 Apr 2020 16:38:42 +0000 How to unbreak LTTng https://lwn.net/Articles/818379/ https://lwn.net/Articles/818379/ pizza <div class="FormattedComment"> <font class="QuotedText">&gt; Google can easily stop that. There's nothing to prevent vendors doing it, but Google can just say "if you do that, you can't call it Android".</font><br> <p> ...And then those companies start complaining to their various national anti-trust bodies, and Google gets threatened with billion-dollar fines.<br> </div> Wed, 22 Apr 2020 16:33:14 +0000 How to unbreak LTTng https://lwn.net/Articles/818361/ https://lwn.net/Articles/818361/ Wol <div class="FormattedComment"> <font class="QuotedText">&gt; Why? Sure some decisions may make there life harder but "punish" implies an "intention to hurt". What makes you think this is the case rather than just trying to do what is best for the kernel as a whole (even if that makes things harder for out of tree modules)?</font><br> <p> Because there's evidence that some kernel maintainers, at least, do not make these decisions based on technical evidence, but on how much grief it's going to cause people that these maintainers perceive as "bad actors".<br> <p> The fact that it causes a lot of grief to innocent bystanders does not get taken into account.<br> <p> Cheers,<br> Wol<br> </div> Wed, 22 Apr 2020 14:42:56 +0000 How to unbreak LTTng https://lwn.net/Articles/818360/ https://lwn.net/Articles/818360/ Wol <div class="FormattedComment"> <font class="QuotedText">&gt; Is that really adequate? Wouldn't phone vendors just set the config flag?</font><br> <p> Google can easily stop that. There's nothing to prevent vendors doing it, but Google can just say "if you do that, you can't call it Android".<br> <p> Cheers,<br> Wol<br> </div> Wed, 22 Apr 2020 14:38:31 +0000 How to unbreak LTTng https://lwn.net/Articles/818326/ https://lwn.net/Articles/818326/ pbonzini <div class="FormattedComment"> Is they can set the flag they can also patch the kernel to export whatever symbol they need.<br> </div> Wed, 22 Apr 2020 11:52:37 +0000 How to unbreak LTTng https://lwn.net/Articles/818290/ https://lwn.net/Articles/818290/ neilbrown <div class="FormattedComment"> <p> Quoting from <a href="https://lwn.net/Articles/813350/">https://lwn.net/Articles/813350/</a><br> <p> <font class="QuotedText">&gt; But that only holds if modules are restricted to the exported-symbol interface; if they start to reach into arbitrary parts of the kernel, all bets are off. Deacon doesn't say so, but it seems clear that some vendors are, at a minimum, thinking about doing exactly that. </font><br> <p> So while I agree with what you say, I don't think it is relevant to my comment.<br> Thanks.<br> <p> </div> Wed, 22 Apr 2020 00:25:30 +0000 How to unbreak LTTng https://lwn.net/Articles/818239/ https://lwn.net/Articles/818239/ nilsmeyer <div class="FormattedComment"> <font class="QuotedText">&gt; Generally excluding duplicate functionality seems to be a good idea for long term maintenance and code size surely.</font><br> <p> What about SELinux and AppArmor (and Smack and TOMOYO)? There are probably a lot of other examples. It often feels arbitrary to the outside observer, <br> </div> Tue, 21 Apr 2020 16:10:21 +0000 How to unbreak LTTng https://lwn.net/Articles/818130/ https://lwn.net/Articles/818130/ Paf <div class="FormattedComment"> “ Why? For non-free ones sure but you explicitly said free modules.”<br> <p> It’s (in many cases) a huge amount of ongoing work, requiring not only commitment and effort but persuasion of others that you have commitment and effort.<br> <p> The idea is that not everything that exists is up to the standards for mainline inclusion, and not everything that exists is going to avoid duplication to the level that’s appropriate for the mainline.<br> <p> This is “let a thousand flowers bloom” stuff - it’s about being open to a world of stuff beyond the domain of what’s good enough to be a permanent part of mainline. Hobby projects (that still have outside users), small stuff, differing approaches to existing functionality that are not clearly better in general (see LTTTNG for an example of that) but are preferred by some users, etc.<br> <p> I recognize this is a sticky issue (well, sort of), but this is still a choice to be more closed.<br> </div> Tue, 21 Apr 2020 14:09:02 +0000 How to unbreak LTTng https://lwn.net/Articles/818126/ https://lwn.net/Articles/818126/ mfuzzey <div class="FormattedComment"> <font class="QuotedText">&gt;LTTng is a good example: there is already a tracing subsystem in-tree, so let's exclude any duplicate functionality.</font><br> <p> Generally excluding duplicate functionality seems to be a good idea for long term maintenance and code size surely.<br> <p> When competing solutions exist the best bits of each can be, and often are it seems to me, merged to make a better in tree solution.<br> <p> And in this particular case Steve Rostedt was quoted in the article as being open to including LTTng<br> <p> <font class="QuotedText">&gt; In-tree status is unrealistic for many free kernel modules</font><br> <p> Why? For non-free ones sure but you explicitly said free modules.<br> <p> <font class="QuotedText">&gt; to punish out-of-tree developers.</font><br> <p> Why? Sure some decisions may make there life harder but "punish" implies an "intention to hurt". What makes you think this is the case rather than just trying to do what is best for the kernel as a whole (even if that makes things harder for out of tree modules)?<br> <p> <font class="QuotedText">&gt; with the lack of a stable kernel API </font><br> <p> The reasons for this are well documented and make sense to many. This is really part of the Linux philosophy today I'd say. No one forces anyone to use Linux.<br> <p> <br> </div> Tue, 21 Apr 2020 13:28:11 +0000 How to unbreak LTTng https://lwn.net/Articles/818114/ https://lwn.net/Articles/818114/ smurf <div class="FormattedComment"> The "all Android vendors hack their kernel" idea is on the way out. The idea is that vendor specific kernel modules (required to access vendor specific hardware) live in a /vendor partition. The device should otherwise use a generic Android kernel.<br> </div> Tue, 21 Apr 2020 12:11:52 +0000 How to unbreak LTTng https://lwn.net/Articles/818113/ https://lwn.net/Articles/818113/ ncultra <div class="FormattedComment"> All of this sounds reasonable at first glance, but there are a couple points that are troublesome to me. Hellwig's objection declares the requirement for any exported symbol to have an in-tree user. Yet, in-tree status is arbitrary and exclusive. LTTng is a good example: there is already a tracing subsystem in-tree, so let's exclude any duplicate functionality. Any one of a clique of long-time maintainers can essentially veto a patch series submitted for upstream consideration. In the end, the decision (or lack of decision) is up to a single individual. There is a universe of free, out-of-tree modules that are useful but disadvantaged by this reality. In-tree status is unrealistic for many free kernel modules. Secondly, this is about in-tree symbols that were removed, not simply rejected. It is therefore punitive in addition to exclusionary. This is the latest in a series of technically dubious policies driven by certain maintainers, notably Kroah-Hartman, to punish out-of-tree developers. Maintaining a driver or module for Linux is a unique experience, in a bad way, with the lack of a stable kernel API and, not for the first time, removal of existing symbols.<br> <p> It gets worse when considering the purpose of a symbol such as kallsyms_on_each_symbol() which is to be a support to developers, and is critical for maintaining a driver or module that can be compiled and linked on multiple kernel versions. This is an accepted practice that is now made much more difficult. In my opinion, this philosophy that punishes out-of-tree developers (regardless of license choice) is counter-productive to the continued existence of Linux as we know it.<br> </div> Tue, 21 Apr 2020 12:08:14 +0000 How to unbreak LTTng https://lwn.net/Articles/818112/ https://lwn.net/Articles/818112/ dyfrgi <div class="FormattedComment"> <font class="QuotedText">&gt; My preference would be that kallsyms_lookup_name(), could be exported or not depending on a CONFIG option. Android could set that to hide the function and LTTng wouldn't work on Android.</font><br> <p> Is that really adequate? Wouldn't phone vendors just set the config flag? Though tbh I also don't understand why they wouldn't just patch the kernel. My understanding is that they all do it for hardware support anyway.<br> </div> Tue, 21 Apr 2020 11:50:02 +0000 How to unbreak LTTng https://lwn.net/Articles/818074/ https://lwn.net/Articles/818074/ neilbrown <div class="FormattedComment"> <font class="QuotedText">&gt; things like that would be distributed as a patch set against the upstream kernel, and users would be expected to recompile their kernel with it.</font><br> <p> I suspect that today a more realistic approach is to ask the various distributors to apply that patch to their kernels.<br> <p> I think it is worth reflecting for a moment on the motivation behind these changes. They seem to be coming from Android. The Android kernel has good reason to lock down the exported inferfaces so that phone vendors cannot 'abuse' them. I fully support that work, but don't think that it should necessarily impose what I do on my device or what a distro does with their supported kernel.<br> So if distros want to patch out these restrictions, that might make perfect sense.<br> Of course it could work the other way around - Android could patch in these restrictions. But we have a long history of trying to bring Android back to mainline - and requiring them to patch in the restrictions would hurt the momentum we have.<br> <p> My preference would be that kallsyms_lookup_name(), could be exported or not depending on a CONFIG option. Android could set that to hide the function and LTTng wouldn't work on Android. Probably no loss there.<br> Other distros could set the config option the other way and LTTng would work fine on them.<br> When I build my own kernels, I can (of course) do whatever I want.<br> Problem solved.<br> <p> </div> Tue, 21 Apr 2020 01:05:41 +0000 How to unbreak LTTng https://lwn.net/Articles/818067/ https://lwn.net/Articles/818067/ cesarb <div class="FormattedComment"> <font class="QuotedText">&gt; unable to function outside of the kernel, and unable to be merged.</font><br> <p> Back in the day, things like that would be distributed as a patch set against the upstream kernel, and users would be expected to recompile their kernel with it. Is that no longer an option?<br> </div> Mon, 20 Apr 2020 23:05:07 +0000