LWN: Comments on "Moving Google toward the mainline" https://lwn.net/Articles/871195/ This is a special feed containing comments posted to the individual LWN article titled "Moving Google toward the mainline". en-us Wed, 01 Oct 2025 13:43:58 +0000 Wed, 01 Oct 2025 13:43:58 +0000 https://www.rssboard.org/rss-specification lwn@lwn.net Moving Google toward the mainline https://lwn.net/Articles/873172/ https://lwn.net/Articles/873172/ teksturi <div class="FormattedComment"> You should consider rolling release stable as your base.<br> <p> This way every time new rolling stable tag comes your feature branches will be rebased top of that (maybe to new branch). Then your feature maintainer will get info if there is conflict. Some of your maintainers will be little bit more far of from rolling release stable than others, but this will be totally ok. You can very easily see which are bottlenecks.<br> <p> You can at any time start new kernel internal kernel. Just choose highest version number which all of yours feature branch is compared to rolling stable. Example feature A got big conflict in 5.14 and it takes 3 weeks resolve it. When conflicts are resolved most likely there will be just small conflicts against newest rolling stable (example 5.14.5) and those will be resolved quickly in feature A. Now that bottleneck work in feature A you choose to make new internal kernel. You guys notice that highest as you can go right now is 5.14.3 as there is couple maintainers who are working some issues introduced in 5.14.4. So now 5.14.3 is chosen and testing can start with it.<br> <p> This way kernel community will be very very happy that you also take stable stuff. Taking 5.14.0 as base make no sense as it gets fixes all the time and then you kinda have to resolve those internal. This is also nice to your maintainers as they can resolve conflicts as they come and some can be aligned all the time with upstream. Usually there will not be many conflict in y.y.x versions. So probably when your conflict resolving work is done you can choose highest stable kernel as internal base.<br> </div> Mon, 18 Oct 2021 10:38:19 +0000 Moving Google toward the mainline https://lwn.net/Articles/873168/ https://lwn.net/Articles/873168/ farnz <p>Depending on your precise use case for a CPU-only load average, you might want to look at <a href="https://www.kernel.org/doc/html/latest/accounting/psi.html">Pressure Stall Information (PSI)</a> as a mainline feature that gets some of what you want. <p>PSI is a different formulation of the load average concept - instead of looking at total utilization, it looks at how much time is spent with a task blocked completely on a resource. <a href="https://facebookmicrosites.github.io/psi/docs/overview">The Facebook PSI microsite</a> has a good explanation of how the different numbers are calculated; basically, though, the `avg` numbers are %age of the time on which either some tasks, or the full set of tasks, are blocked waiting for a given resource to be made available to them. As per the <a href="https://elixir.bootlin.com/linux/latest/source/kernel/sched/psi.c">source code comments</a>, for CPU time, <tt>full</tt> only exists when tasks are restricted from using 100% of available CPU via cgroups, but <tt>some</tt> is present all the time. <p>A task is deemed stalled on a resource (CPU, memory, I/O) if the task would run now, but it's waiting for this resource. So, an I/O stall means that the task would be runnable if it wasn't waiting on I/O (whether via blocking I/O calls, or because it's blocked in epoll or the like on an I/O that's not yet completed), while a CPU stall means that the task is runnable, but none of the CPUs it's allowed to run on are idle. <p>The clever bit is that what's output is stall percentage, not time in which there's a stall; so a value avgXXX=10.0 means that with 10% more of this particular resource (memory, I/O, CPU), there would have been no tasks waiting for resource. This matters when you see a CPU stall of the form "some avg60=10.00"; it means that with 10% more CPU cores, all tasks would have run immediately they were able to; similarly, a CPU stall of the form "full avg300=5.00" means that something limited a cgroup to not use all CPU cores, but if that limit had been raised by 5%, nothing would have waited for a CPU core. <p>Not the same as a load average, but possibly of use to you in fixing whatever problem you're facing where a CPU-only load average is interesting. Mon, 18 Oct 2021 09:43:27 +0000 Moving Google toward the mainline https://lwn.net/Articles/873111/ https://lwn.net/Articles/873111/ codewiz <div class="FormattedComment"> Kernel support really depends on the SoC in your device. Each Android release supports a range of kernel versions.<br> <p> In theory it would be possible to &quot;uprev&quot; the kernel on a particular SoC, but most vendors just don&#x27;t bother because adding features to discontinued SoCs doesn&#x27;t help them sell more of their newer SoCs.<br> </div> Sat, 16 Oct 2021 06:29:22 +0000 Moving Google toward the mainline https://lwn.net/Articles/873092/ https://lwn.net/Articles/873092/ SomeOtherGuy <div class="FormattedComment"> One of the things Google have (I read this in one of their papers) is load averages which don&#x27;t count processes waiting for IO - I&#x27;d love that<br> <p> I did look at patching it, but load averages are surprisingly complicated - at least in implementation!<br> <p> <p> (ADVICE WELCOME AND YES I&#x27;D LOVE THIS LOAD-AVERAGE - don&#x27;t question that please)<br> </div> Fri, 15 Oct 2021 21:01:09 +0000 Moving Embedded toward the mainline https://lwn.net/Articles/872627/ https://lwn.net/Articles/872627/ JanC_ <div class="FormattedComment"> Most hardware is no better than the software when it comes to doing just enough to get something to work (and often the software has to work around the hardware bugs).<br> <p> Most money is going to marketing, I suppose (and that’s probably necessary to get people to ignore the bad quality &amp; support they get).<br> </div> Tue, 12 Oct 2021 08:11:27 +0000 Moving Embedded toward the mainline https://lwn.net/Articles/872390/ https://lwn.net/Articles/872390/ willy <div class="FormattedComment"> Exactly. There&#x27;s plenty of money; they&#x27;re just choosing not to spend it on software.<br> </div> Sun, 10 Oct 2021 01:21:55 +0000 Moving Embedded toward the mainline https://lwn.net/Articles/872389/ https://lwn.net/Articles/872389/ flussence <div class="FormattedComment"> Their software divisions are given enough budget to ship a product, not a robust product. You&#x27;re usually lucky to even get malicious compliance with the GPL2 on one of these things without fighting for it.<br> </div> Sun, 10 Oct 2021 01:18:28 +0000 Moving Embedded toward the mainline https://lwn.net/Articles/872257/ https://lwn.net/Articles/872257/ willy <div class="FormattedComment"> The embedded world doesn&#x27;t have a revenue stream? I got my TV for free?<br> <p> </div> Fri, 08 Oct 2021 11:58:38 +0000 Moving Google toward the mainline https://lwn.net/Articles/872255/ https://lwn.net/Articles/872255/ error27 <div class="FormattedComment"> The link to 2009 was quite interesting to see where the kernel performance challenges were back then. Things like the BadRam patches. I remember that existed but I couldn&#x27;t say at all what happened to it in the end...<br> </div> Fri, 08 Oct 2021 11:23:27 +0000 Moving Google toward the mainline https://lwn.net/Articles/872245/ https://lwn.net/Articles/872245/ patrick_g <div class="FormattedComment"> <font class="QuotedText">&gt; The Pixel 5, up until a few weeks ago was the newest google headset and it uses 4.19. When it pulls down Android12 it might be slightly newer but I doubt it will even be in the 5 series kernels and that means years old, not months.</font><br> <p> I think Android 12 is using a 5.10 kernel.<br> </div> Fri, 08 Oct 2021 06:49:48 +0000 Moving Google toward the mainline https://lwn.net/Articles/872239/ https://lwn.net/Articles/872239/ rahvin <div class="FormattedComment"> I&#x27;m sure you know this but, Depending on version of Android a user could be running kernel 2.xx to 4.xx. Android tends to uses really old kernels and the tech debt porting from 5.xx to 3.xx or even 4.xx is going to be huge. You might be easily able to port from 5.13 to 5.16 (because they are only a few months apart), but tell me it&#x27;s that easy to go from 5.13 to 4.13 or 3.13. <br> <p> The Pixel 5, up until a few weeks ago was the newest google headset and it uses 4.19. When it pulls down Android12 it might be slightly newer but I doubt it will even be in the 5 series kernels and that means years old, not months.<br> </div> Fri, 08 Oct 2021 05:05:06 +0000 Moving Google toward the mainline https://lwn.net/Articles/872236/ https://lwn.net/Articles/872236/ zblaxell <div class="FormattedComment"> One thing we learn very quickly when we try to use software to implement a production service is that there are two kinds of software: software we tested, and software we haven&#x27;t tested yet. We can say a lot of things about the first kind, like it definitely works for some things and definitely doesn&#x27;t work for other things, and various behaviors have changed in good and bad ways between versions. We can define boundaries around what we do and don&#x27;t know about code behavior, and we can assess deployment risks based on empirical data.<br> <p> All we can say about the second kind of software is that it hasn&#x27;t been tested on our workload, so we don&#x27;t know any of those things. Sure, it might have been tested by some group of domain-expert people, and certified by another group of accredited generalist people, and a third group of people with a lot of reddit upvotes swears it&#x27;s awesome, and some robots didn&#x27;t notice any of the more common problems--in fact, we&#x27;d insist on most or all of that before we bother downloading it for a test build. None of that fancy pedigree matters if we throw our production app on it, and it immediately falls over because we&#x27;re doing something nobody else does. If we&#x27;re providing a production service on a commercial scale with the software, it&#x27;s highly likely we&#x27;re doing something nobody else does. Even if others start doing what we do, we&#x27;d write some new code and be doing something different again. Maybe we&#x27;re doing something wrong, and our tests (and only our tests) will make the problem visible.<br> <p> The QA gatekeeper in front of the production server farm has one job: keep the server farm producing at least whatever it is producing now. They can keep running the kernel they already have, so they have no incentive to take risks that might jeopardize that. The gatekeeper will not accept broad assurances of quantity testing--they&#x27;ll need to be *convinced* to upgrade, with evidence of monotonic improvement in the new versions, or dire and irreparable problems arising in the old versions. &quot;Personally tested by the maintainer and a team of leading experts in the subsystem&quot; is an excellent start, but we&#x27;ll run our own test suite on it before we call it &quot;tested.&quot;<br> <p> At every node in the integration graph, from developer&#x27;s laptop to integration tree to merge window to release, LTS, and production deployment, someone is doing testing and deciding whether the code they pulled as input to their node is good enough to push to the output of their node (or in the case of testing robots, snooping on the edges between nodes and advising the node owners). Every node must consider its inputs &quot;effectively untested,&quot; or the integration graph doesn&#x27;t work. That&#x27;s the whole point of having an integration graph: to combine diverse and isolated pools of domain expertise into a comprehensive testing workflow.<br> </div> Fri, 08 Oct 2021 04:59:27 +0000 Moving Embedded toward the mainline https://lwn.net/Articles/872184/ https://lwn.net/Articles/872184/ mtaht <div class="FormattedComment"> The embedded world, with the move to extensive offloads, has much more technical debt accumulated, without a revenue stream and developers enabled to pay it down.<br> </div> Thu, 07 Oct 2021 16:27:12 +0000 Moving Google toward the mainline https://lwn.net/Articles/872175/ https://lwn.net/Articles/872175/ bfields <div class="FormattedComment"> <font class="QuotedText">&gt; Upstream is effectively untested.</font><br> <p> For what it&#x27;s worth, as one of the knfsd maintainers, I have a set of NFS-focused test suites (xfstests, connectathon, pynfs, a few smaller tests, run over a variety of NFS protocol versions and security flavors) that I run on anything that I publish. I also run them nightly on the latest trees from Linus, stable, and linux-next, and a few other NFS developers.<br> <p> I&#x27;m by no means the most conscientious. Maintainers do this kind of thing all the time.<br> <p> I also get pretty regular mail from bots run on mainline and linux-next, and their coverage seems to be improving over time.<br> <p> &quot;It boots on a dev box and can compile a new kernel&quot; isn&#x27;t really the current situation.<br> <p> I mean, I think I&#x27;m with you on the basic sentiment, testing is really important and we can and should do better.<br> </div> Thu, 07 Oct 2021 15:43:43 +0000 Moving Google toward the mainline https://lwn.net/Articles/872103/ https://lwn.net/Articles/872103/ jonas.bonn <div class="FormattedComment"> What value of gc.rerereResolved do people use in practice? The default 60 days doesn&#x27;t seem sufficient... Or are merges redone often enough that the conflict resolutions get their cached age somehow reset? A bit of extra insight into the practical usage of git rerere for this would be of interest. <br> </div> Thu, 07 Oct 2021 07:01:21 +0000 Moving Google toward the mainline https://lwn.net/Articles/872093/ https://lwn.net/Articles/872093/ tsoni.lwn <div class="FormattedComment"> Isn&#x27;t it a nightmare when you have to continuously apply the LTS updates every week on the production kernel which has 9000 patches modifying various core kernel changes? I am sure we will need Engineers just doing the merge conflict resolutions, talking w/ Engineers who wrote these patches, building and testing. <br> </div> Thu, 07 Oct 2021 04:54:27 +0000 Moving Google toward the mainline https://lwn.net/Articles/872092/ https://lwn.net/Articles/872092/ tsoni.lwn <div class="FormattedComment"> GKI has &quot;tracehooks&quot; approach to make the &quot;core&quot; framework changes working through modules. Lot of vendors using GKI are already doing it including the scheduler and core memory framework changes. There may be very tiny penalty due to tracehooks depending on the path of the code. <br> </div> Thu, 07 Oct 2021 04:50:58 +0000 Moving Google toward the mainline https://lwn.net/Articles/872078/ https://lwn.net/Articles/872078/ pizza <div class="FormattedComment"> <font class="QuotedText">&gt; &quot;It boots on my dev box and can compile a new kernel&quot; is not testing.</font><br> <p> Just because the tests they run don&#x27;t include your particular workloads doesn&#x27;t mean something isn&#x27;t tested.<br> <p> (Over the years, the &quot;can it compile a new kernel&quot; has been a far more useful &quot;test&quot; than most synthetic stress tests..)<br> <p> Meanwhile, feel free to contribute your own test suite to those working upstream.<br> </div> Wed, 06 Oct 2021 22:21:42 +0000 Moving Google toward the mainline https://lwn.net/Articles/872079/ https://lwn.net/Articles/872079/ Paf <div class="FormattedComment"> They’re compromising between these two things. They’re not going to hit on the same answer as someone just doing dev.<br> </div> Wed, 06 Oct 2021 22:20:48 +0000 Moving Google toward the mainline https://lwn.net/Articles/872073/ https://lwn.net/Articles/872073/ gps <div class="FormattedComment"> <font class="QuotedText">&gt; &quot;&quot;&quot;people demanding backports (instead of updating to upstream) realize that they are basically working with a new, untested version of the software anyway&quot;&quot;&quot;</font><br> <p> This is the Linux Kernel project we&#x27;re talking about here. Upstream is effectively untested.<br> <p> Especially when compared to the real world testing needed before mass multi-billion dollar production use.<br> <p> &quot;It boots on my dev box and can compile a new kernel&quot; is not testing.<br> </div> Wed, 06 Oct 2021 21:56:55 +0000 Moving Google toward the mainline https://lwn.net/Articles/872065/ https://lwn.net/Articles/872065/ pbonzini <div class="FormattedComment"> It only matters to be close enough. Patches written for 5.13 are easy to forward port to 5.16, and then they will be absorbed in the 5.16 rebase a few months from now.<br> <p> The team doing the rebases won&#x27;t even be the same that is doing the upstream contributions.<br> </div> Wed, 06 Oct 2021 20:38:37 +0000 Moving Google toward the mainline https://lwn.net/Articles/872052/ https://lwn.net/Articles/872052/ geert <div class="FormattedComment"> They also talk about the need to upstream some of their features. To do that efficiently, you have to be on top of the latest development kernel.<br> </div> Wed, 06 Oct 2021 18:08:21 +0000 Moving Google toward the mainline https://lwn.net/Articles/872047/ https://lwn.net/Articles/872047/ Paf <div class="FormattedComment"> I agree it’s too late to be right for dev, but they’re trying to build a system where they can take this kernel in to production - that’s the one they’re talking about here. And you’d never take this pile you’ve built in to production, even if it’s the right place to do dev.<br> </div> Wed, 06 Oct 2021 17:32:53 +0000 Moving Google toward the mainline https://lwn.net/Articles/872017/ https://lwn.net/Articles/872017/ geert <div class="FormattedComment"> &quot;At the time of the talk, it was based on the 5.13 kernel, at a time when the 5.15 kernel is in the release-candidate stage. So the project is essentially<br> one major release behind the mainline.&quot; and &quot;The team is working on 5.14 now.&quot;<br> <p> IMHO that&#x27;s too late: I&#x27;m working on v5.16. That is (at the time of the talk) v5.15-rc3 + lots of for-next branches from subsystems I care about.<br> </div> Wed, 06 Oct 2021 12:25:48 +0000 Moving Google toward the mainline https://lwn.net/Articles/872014/ https://lwn.net/Articles/872014/ Sesse <div class="FormattedComment"> That&#x27;s not easy for e.g. core memory-management patches.<br> <p> BTW, I find it amusing that “the prod kernel” now seemingly has the name “Prodkernel”.<br> </div> Wed, 06 Oct 2021 10:17:18 +0000 Moving Google toward the mainline https://lwn.net/Articles/872012/ https://lwn.net/Articles/872012/ taladar <div class="FormattedComment"> The thing about backports that I always wonder about is if the people demanding backports (instead of updating to upstream) realize that they are basically working with a new, untested version of the software anyway, one created by someone often not terribly familiar with the upstream project.<br> <p> This might make some sense with central, mature libraries in a stable distro but anything without major reverse dependencies (e.g. almost all binaries or other leaf nodes in the dependency graph) or with a very active development breaking APIs and ABIs all the time should not use the backport model.<br> </div> Wed, 06 Oct 2021 09:28:56 +0000 Moving Google toward the mainline https://lwn.net/Articles/872002/ https://lwn.net/Articles/872002/ tsoni.lwn <div class="FormattedComment"> How about Google use the GKI model for the Server development as well? Keep all the downstream features as modules and upstream them one by one while keeping the core kernel clean (not so clean w/ hooks but controlled). <br> </div> Wed, 06 Oct 2021 01:15:50 +0000 Moving Google toward the mainline https://lwn.net/Articles/871998/ https://lwn.net/Articles/871998/ ndesaulniers <div class="FormattedComment"> Forking is a high-interest credit card of tech debt accumulation unless you can &#x27;outrun&#x27; upstream.<br> <p> There are cases where using the credit card make sense, but it&#x27;s easy to get into a case where you&#x27;re stuck paying off revolving balance without making a dent in principal.<br> <p> Getting prodkernel building with LLVM was an exercise in deja-vu; they weren&#x27;t using branches of stable, so we had to chase backports again that we had already done for Android and CrOS. Makes me wonder how much duplicated effort goes into backports for distros not using stable...<br> </div> Tue, 05 Oct 2021 23:05:03 +0000