News for hackers. Stuff that matters.
Re:“Fast Kernel Headers” Tree -v1: Eliminate the Linux Kerne... by formerly_proven on Sunday January 02, 2022 @07:02PM (#29775571)

    From: Ingo Molnar
    Subject: [PATCH 0000/2297] Eliminate the Linux kernel's "Dependency Hell"
    
    ...
    25,288 files changed, 178,024 insertions(+), 74,720 deletions(-)
Re:“Fast Kernel Headers” Tree -v1: Eliminate the Linux Kerne... by kangalioo on Sunday January 02, 2022 @07:16PM (#29775696)
Where did the additional 100kLOC come from?
Re:“Fast Kernel Headers” Tree -v1: Eliminate the Linux Kerne... by crishoj on Sunday January 02, 2022 @07:29PM (#29775792)
I suspect it’s this: “Automated dependency addition to .h and .c files. This is about 790 commits, which are strictly limited to trivial addition of header dependencies. These patches make indirect dependencies explicit, and thus prepare the tree for aggressive removal of cross-dependencies from headers.”
Re:“Fast Kernel Headers” Tree -v1: Eliminate the Linux Kerne... by jontro on Sunday January 02, 2022 @07:29PM (#29775798)
Did a brief scan of the repo. Looks like a lot of it comes from adding new headers. This commit adds +#include <linux/wait_api.h> to 1627 files for instance.

https://git.kernel.org/pub/scm/linux/kernel/git/mingo/tip.gi...

Re:“Fast Kernel Headers” Tree -v1: Eliminate the Linux Kerne... by charcircuit on Sunday January 02, 2022 @09:30PM (#29776657)
>2298 emails

When will Linux move to a site like github / gitlab / something similar self hosted that supports people proposing changes without having to send every single person interested in the development of Linux thousands of emails.

Re:“Fast Kernel Headers” Tree -v1: Eliminate the Linux Kerne... by ReactiveJelly on Sunday January 02, 2022 @09:37PM (#29776705)
I think having everyone see all the emails is part of the point. Even with self-hosted Gitea, someone has to _host_ it. And there isn't a trivial export button, and if the host goes rogue they can make it inaccessible and make everyone lose efficiency while they swap back to the old method.

And if you need email to authenticate on a website, why not just use email anyway?

But this is an interesting idea, and I'm on the look-out for ideas to replace email. I'll keep "LKML" in the back of my head as a use case.

Re:“Fast Kernel Headers” Tree -v1: Eliminate the Linux Kerne... by charcircuit on Sunday January 02, 2022 @09:57PM (#29776809)
>And there isn't a trivial export button

It does support making backups of repositories at least.

>and if the host goes rogue they can make it inaccessible and make everyone lose efficiency while they swap back to the old method.

Isn't this also a problem if the person managing the email list goes rogue? You have to trust someone to host the infrastructure.

>And if you need email to authenticate on a website, why not just use email anyway?

Because Email may not be the optimal user interface for handling issues, pull requests, code review, etc.

Re:“Fast Kernel Headers” Tree -v1: Eliminate the Linux Kerne... by cerved on Monday January 03, 2022 @12:52AM (#29777776)
> Because Email may not be the optimal user interface for handling issues, pull requests, code review, etc.

Maybe that's your experience.

Others have used mailing lists for this purpose for decades and a lot of people prefer it.

For one, it's accessible. Every machine can do plaintext email. Every text editor can work with plaintext. It's simple. Integrate it into whatever shell/editor/scripting language you prefer.

As opposed to login into to a bespoke web interface, mainly primarily designed to be friendly to novice users.

Re:“Fast Kernel Headers” Tree -v1: Eliminate the Linux Kerne... by charcircuit on Monday January 03, 2022 @01:29AM (#29777984)
>and a lot of people prefer it.

If this in true then why do so few projects use a mailing list nowadays instead of something like github.

>Every machine can do plaintext email.

Every machine can do web browsing too. More people have used a web browser on their computer than a dedicated email client (as opposed to a web app like gmail).

>As opposed to login into to a bespoke web interface

You have to log in to email too.

>mainly primarily designed to be friendly to novice users.

What's wrong with that? Having good UX is a win. The UX for creating a new repo on github is a million times better than creating a mailing list (yes I have set up a mailing list for a project I made and no one e ended up using it except for me. Meanwhile I had much more success with getting people to join and discuss the project via Discord)

Re:“Fast Kernel Headers” Tree -v1: Eliminate the Linux Kerne... by cerved on Monday January 03, 2022 @02:45AM (#29778340)
> If this in true then why do so few projects use a mailing list nowadays instead of something like github.

Lot's of projects use mailing lists. Lot's of projects use web-based git hosting services. Lot's of projects mix.

Why do people just use GitHub? Because it requires zero configuration and it's convenient when you're developing something yourself.

The Linux Kernel is by far the worlds largest open source project. Consider that it might have different needs.

>> Every machine can do plaintext email.

> Every machine can do web browsing too.

You're missing the point. A web interface is more complex than plaintext emails. To integrate into your shell environment is a lot more complicated.

> More people have used a web browser on their computer than a dedicated email client (as opposed to a web app like gmail).

I don't understand your point.

>> As opposed to login into to a bespoke web interface

> You have to log in to email too.

The emphasis was on bespoke web interface, not logging in.

>>mainly primarily designed to be friendly to novice users.

>What's wrong with that?

Fast and flexible are sacrificed. Ie. it's more convenient for the people who don't use the system all the time (people filing bug-reports) vs. the people who actually use it all the time (maintainers)

> yes I have set up a mailing list for a project I made and no one e ended up using it except for me

a tad different use-case to the development of the linux kernel it seems

> Meanwhile I had much more success with getting people to join and discuss the project via Discord

Whatever works for your project bro.

Re:“Fast Kernel Headers” Tree -v1: Eliminate the Linux Kerne... by wott on Monday January 03, 2022 @01:51AM (#29778084)
> Every machine can do web browsing too.

Tell that to most of my browsers which refuse to display any Gitlab content (they only ever show the side bar).

Re:“Fast Kernel Headers” Tree -v1: Eliminate the Linux Kerne... by CRConrad on Friday January 07, 2022 @10:57AM (#29840595)
>> mainly primarily designed to be friendly to novice users.

> What's wrong with that? Having good UX is a win.

What's "good UX for novice users" isn't necessarily good UX for more advanced ones.

Re:“Fast Kernel Headers” Tree -v1: Eliminate the Linux Kerne... by xyzzy_plugh on Sunday January 02, 2022 @11:12PM (#29777255)
> Isn't this also a problem if the person managing the email list goes rogue? You have to trust someone to host the infrastructure.

It depends on what kind of threat you are worried about. The beautiful thing is even if LKML was abused and ruined tomorrow, nothing is lost or damaged. The emails have already been sent, and moving to a new list is more of a nuisance at this point.

If you're worried about authenticating a patch series, committers can sign their commits a number of ways.

Lastly, a large chunk of Linux development happens off-list, with subsystem maintainers building branches for Linus or Greg to pull from.

Re:“Fast Kernel Headers” Tree -v1: Eliminate the Linux Kerne... by CameronNemo on Sunday January 02, 2022 @10:45PM (#29777102)
I can't stop laughing at the idea of GitLab struggling to render 100k lines of changes.

Please actually attempt the ideas you are suggesting before suggesting them.

This set of changes (and other large ones like it) is partially why the kernel needs to use email instead of <insert bloated Ruby application here>.

Re:“Fast Kernel Headers” Tree -v1: Eliminate the Linux Kerne... by nyanpasu64 on Monday January 03, 2022 @12:47AM (#29777757)
GitLab is awful and slow at rendering large changes. Sometimes when folding and unfolding files, the scroll position will jump around (though I'm unsure if that's a browser extension). And when viewing standalone files, KDE's Invent GitLab server is slow and can take 5-10 seconds to render a few thousand lines and send it to the client as JSON with syntax highlighting, before the file contents show up.
Re:“Fast Kernel Headers” Tree -v1: Eliminate the Linux Kerne... by masklinn on Monday January 03, 2022 @03:13AM (#29778468)
> GitLab is awful and slow at rendering large changes

So’s github, anything of a non-trivial size it just won’t show by default and you need to re-request every time.

It starts struggling around the kloc scale, and the browser itself soon follows as the dom is not the neatest and you start getting tab memory above half a gig, which I assume also makes the JS start killing itself or something.

Good times.

Re:“Fast Kernel Headers” Tree -v1: Eliminate the Linux Kerne... by merb on Monday January 03, 2022 @06:46PM (#29788752)
gitlab can't render this changeset. gitlab has a limit what it can render.
Re:“Fast Kernel Headers” Tree -v1: Eliminate the Linux Kerne... by xyzzy_plugh on Sunday January 02, 2022 @11:13PM (#29777260)
> why the kernel needs to use email instead of

This sort of implies that the Kernel would use something centralized if it worked well, which I don't believe to be true. Using email is very much an intentional choice and a desirable solution.

Re:“Fast Kernel Headers” Tree -v1: Eliminate the Linux Kerne... by charcircuit on Monday January 03, 2022 @01:14AM (#29777888)
>This sort of implies that the Kernel would use something centralized if it worked well, which I don't believe to be true.

The mailing list that they use now is centralized. It works by everyone sending a message to a single email address. The owner of that address then sends the email out to all of the subscrbers of the mailing list.

Having everyone who wants to upstream their patch directly to the kernel submit their work to a single website is not much different than them sending it to a single email.

Re:“Fast Kernel Headers” Tree -v1: Eliminate the Linux Kerne... by hnaccount_rng on Monday January 03, 2022 @04:54AM (#29779053)
But that isn't how it works right? You send your pull requests to the relevant maintainer, CC people that you think should be aware _and_ send it to the mailing list (probably also "only" via CC).

This here for example is sent to Linus directly and that part does _not_ depend on the mailing list. The mailing list is just a convenience feature for people that _want_ to be aware but may be looked over/forgotten by the submitter (which still happens, and people regularly say stuff like "also CC'ing additional relevant people").

Yes you could, at least in principle, also do that via GitHub/GitLab/whatever. But a) you wouldn't gain anything (the kernel already has all the tooling it needs and it's large enough to just create missing tools, heck git was literally written for it), b) you would introduce a massive single point of failure that either i) is _not_ under control of the kernel.org team or ii) needs a massive amount of resources to host (see the fun people poke at displaying 2k commits in GitLab). Neither seems like a good use of the kernel development resources. And if you want to contribute to the kernel... using a mailing list is an absolutely trivial problem.

Re:“Fast Kernel Headers” Tree -v1: Eliminate the Linux Kerne... by CameronNemo on Monday January 03, 2022 @12:16AM (#29777589)
Yeah which is why I put the word "partially" in front of that out of context quote.
Re:“Fast Kernel Headers” Tree -v1: Eliminate the Linux Kerne... by ncann on Sunday January 02, 2022 @11:30PM (#29777346)
It's not like you would render and display the diffs in 2k emails at the same time either.
Re:“Fast Kernel Headers” Tree -v1: Eliminate the Linux Kerne... by hamburglar on Monday January 03, 2022 @03:57AM (#29778725)
There’s no reason you couldn’t. And part of the beauty of patch emails containing full diffs is that you can take them and use whatever tool you want to render them and not be beholden to some dumb web UI’s opinion of what’s “too big.”
Re:“Fast Kernel Headers” Tree -v1: Eliminate the Linux Kerne... by CameronNemo on Monday January 03, 2022 @12:18AM (#29777605)
The difference is in one case a centralized server is expending a lot of resources to show something to the user, and in the other case it all happens locally and has no effect on the kernel.org infrastructure.
Re:“Fast Kernel Headers” Tree -v1: Eliminate the Linux Kerne... by encryptluks2 on Monday January 03, 2022 @04:31AM (#29778922)
I don't think the issue is with the centralized server, but the browser and the JS components they use. I prefer local anyhow.
Re:“Fast Kernel Headers” Tree -v1: Eliminate the Linux Kerne... by wtallis on Sunday January 02, 2022 @11:34PM (#29777364)
Didn't git do exactly that in preparing those emails to be sent? I wonder how long it took for that command to run.
Re:“Fast Kernel Headers” Tree -v1: Eliminate the Linux Kerne... by db48x on Monday January 03, 2022 @01:28AM (#29777978)
Probably very, very quickly. git-format-patch is very fast; all it has to do is diff the files involved in each commit, which is already heavily optimized. No syntax highlighting (your email program can do that if you want it), or line numbering (ditto).
Re:“Fast Kernel Headers” Tree -v1: Eliminate the Linux Kerne... by db48x on Monday January 03, 2022 @05:24AM (#29779255)
61.65 seconds to create all 2,298 emails on my computer, with the repository on spinning rust. That’s about one fortieth of a second each on average.
Re:“Fast Kernel Headers” Tree -v1: Eliminate the Linux Kerne... by bonzini on Monday January 03, 2022 @02:24AM (#29778248)
Don't discount the heaviness of rendering the HTML on the client, too!
Re:“Fast Kernel Headers” Tree -v1: Eliminate the Linux Kerne... by charcircuit on Sunday January 02, 2022 @11:07PM (#29777231)
I'm sure it could handle you viewing each commit one at a time just how with email you would look at each commit one at a time.
Re:“Fast Kernel Headers” Tree -v1: Eliminate the Linux Kerne... by encryptluks2 on Sunday January 02, 2022 @10:22PM (#29776970)
I have actually came to appreciate email much more than I used to. There are so many bad implementations of email, that for years I was on the bandwagon of having something else replace email.

Then I came to realize that my problem was not with email itself, but the way I had been using it. All GitHub, GitLab, etc do is take a decentralized platform and add centralization. I love the idea of using email now instead of a centralized issue tracker. Mailing lists become the issue tracker and those are then published on a website for others to use that want some centralized features.

Re:“Fast Kernel Headers” Tree -v1: Eliminate the Linux Kerne... by charcircuit on Sunday January 02, 2022 @10:28PM (#29777011)
A mailing list is a centralized platform. Just as the internet / web is decentralized and github lives on the web. Email is decentralized and a mailing list lives on email.
Re:“Fast Kernel Headers” Tree -v1: Eliminate the Linux Kerne... by encryptluks2 on Monday January 03, 2022 @01:50AM (#29778078)
Centralized in this instance means one provider controlling the platform. GitHub is owned and controlled by Microsoft and therefore has a descent amount of vendor lock-in. Email is not controlled by a single provider and if configured correctly, you can easily migrate email between various providers or host it yourself. Email uses open standards.

A mailing list is centralized, but much less so than GitHub and is secondary in this instance.

Re:“Fast Kernel Headers” Tree -v1: Eliminate the Linux Kerne... by rndgermandude on Monday January 03, 2022 @04:54AM (#29779048)
> 0 siblings, 0 replies; only message in thread

Ingo did not send 2298 patch emails, he sent only the 0000 one, which contains the location of his public git repo for all this. People can clone this, and can even push it to a github/gitlab/etc hosted repo if they like.

Re:“Fast Kernel Headers” Tree -v1: Eliminate the Linux Kerne... by esgwpl on Monday January 03, 2022 @05:31AM (#29779314)
In fact, sending too many patches to the mailing list is frowned upon:

https://lkml.org/lkml/2005/7/11/336

Re:“Fast Kernel Headers” Tree -v1: Eliminate the Linux Kerne... by hamburglar on Monday January 03, 2022 @05:23AM (#29779238)
Just checking here, but you are aware that the person who specifically likes the current process for managing the linux kernel sources is also the person who designed and implemented git, right? As in, Linus wrote git because he wanted a tool for managing sources exactly the way he wanted to do it. Is it any surprise that he has no desire to move away from that workflow?
Re:“Fast Kernel Headers” Tree -v1: Eliminate the Linux Kerne... by charcircuit on Monday January 03, 2022 @11:55AM (#29782848)
Yes, I am aware of that, but I'm also aware that this is an ancient workflow. Git was released before I even used a computer for the first time.

I think it's natural for workflows to change overtime.

Re:“Fast Kernel Headers” Tree -v1: Eliminate the Linux Kerne... by hamburglar on Monday January 03, 2022 @10:02PM (#29790764)
BDFLs gonna BDFL.
Re:“Fast Kernel Headers” Tree -v1: Eliminate the Linux Kerne... by CRConrad on Friday January 07, 2022 @10:52AM (#29840532)
It's a fucking shame how many people nowadays can't grok the difference between git and GitHub.

Your question is fundamentally wrong; totally bass-ackwards. The correct question is:

When will all the zillion other projects move off of GitHub / GitLab / all the other usurper sites?

Re:“Fast Kernel Headers” Tree -v1: Eliminate the Linux Kerne... by cerved on Sunday January 02, 2022 @10:51PM (#29777132)
nobody is forcing you to read all of them
Re:“Fast Kernel Headers” Tree -v1: Eliminate the Linux Kerne... by CameronNemo on Sunday January 02, 2022 @11:03PM (#29777202)
yeah just minimize the PR like I minimized this thread..
Re:“Fast Kernel Headers” Tree -v1: Eliminate the Linux Kerne... by charcircuit on Sunday January 02, 2022 @11:09PM (#29777242)
It just seems like a waste of resources to send all these emails to people who are not going to read them.
Re:“Fast Kernel Headers” Tree -v1: Eliminate the Linux Kerne... by cerved on Monday January 03, 2022 @12:36AM (#29777701)
?? how?

it's plain-text email

the display ad on your local news website is probably wasting more resources

Re:“Fast Kernel Headers” Tree -v1: Eliminate the Linux Kerne... by stjohnswarts on Tuesday January 04, 2022 @02:14AM (#29792237)
not for a very long time. The devs prefer email to github methods of communicating and patching.
Re:“Fast Kernel Headers” Tree -v1: Eliminate the Linux Kerne... by londons_explore on Sunday January 02, 2022 @07:16PM (#29775695)
You have to have an awfully good reason to add 100k lines of code to a project... And I don't think merely shaving 50% off the build time is enough.

Think how many lines are now duplicate (and therefore need to be updated in twice as many places, and bugs introduced when a copy is missed).

Think how much extra stuff someone needs to skim through looking for the relevant file or part of the file.

If the 100k lines were in their own subdirectory and added a major new feature, it would be worth it. But spread across the whole codebase, and introducing more duplication and chances for bugs I think outweighs a 'neater' header file system.

The 'dependency hell' is only an issue for people who only want to build part of the kernel anyway. If you're building the whole lot, you might as well just include everything and it'll work great.

Re:“Fast Kernel Headers” Tree -v1: Eliminate the Linux Kerne... by derefr on Sunday January 02, 2022 @07:24PM (#29775762)
> [This patch series] decouples much of the high level headers from others, uninlining of unnecessary functions, a decoupling of the type and API headers, automated dependency handling of header files, and a variety of other changes

That's a lot more than "shaving the build time."

As far as I understand it, the goal of this patchset isn't to improve the build time; that's just a nice consequence. The goal was to refactor the header-file hierarchy to make it more maintainable and less "brittle." Sometimes, increasing maintainability requires more code. (Almost always, if the current version is a terse mess of mixed concerns.)

Think of it this way: take an IOCCC entry, and de-obfuscate it. You're "increasing the size of the codebase." You might even be "duplicating" some things (e.g. magic constants that were forcefully squashed together because they happened to share a value, which are now separate constants per semantic meaning.) But doing this obviously increases the maintainability of the code.

Re:“Fast Kernel Headers” Tree -v1: Eliminate the Linux Kerne... by XorNot on Sunday January 02, 2022 @07:35PM (#29775851)
I'd say cycle time is also important anyway: we spend a lot of time building the Linux kernel in various forms. The savings across the board in manhours waiting for compilation, or for git bisect, are not insubstantial.

I wonder what the memory savings for compilation look like? Because that's also potentially more workers in automated testing farms for the same cost.

Re:“Fast Kernel Headers” Tree -v1: Eliminate the Linux Kerne... by derefr on Monday January 03, 2022 @12:30PM (#29783404)
I've never tried it myself, but presuming you build the kernel in modular rather than monolithic mode, wouldn't the incremental compiles during git-bisect et al already be pretty quick? You'd only be rebuilding the modules whose source files changed, and those (presumably) wouldn't be pulling in the entire header tree. (Or would they, with that being "the problem"?)
Re:“Fast Kernel Headers” Tree -v1: Eliminate the Linux Kerne... by tedunangst on Monday January 03, 2022 @12:58PM (#29783851)
That is the problem.
Re:“Fast Kernel Headers” Tree -v1: Eliminate the Linux Kerne... by Supermancho on Sunday January 02, 2022 @07:50PM (#29775986)
> You have to have an awfully good reason to add 100k lines of code to a project... And I don't think merely shaving 50% off the build time is enough.

When you're talking a project of half a million lines, sure.

The Linux kernel has around 27.8 million lines of code. An increase of .35%

> Think how much extra stuff someone needs to skim through looking for the relevant file or part of the file.

Why add features at all? Code has a purpose. Sometimes bringing code into a static context is a net good. It was going to be generated at runtime anyway.

> If you're building the whole lot, you might as well just include everything and it'll work great.

That's not strictly true, but it's true for these features, which is a stated reasoning.

Re:“Fast Kernel Headers” Tree -v1: Eliminate the Linux Kerne... by kangalioo on Sunday January 02, 2022 @08:57PM (#29776446)
Good golly, that 0.35% figure really puts the patch set into perspective

A library I'm working on is 7000 LOC which seems pretty sizable, but 0.35% of that is 25 LOC.

The Linux patch set is actually tiny

Re:“Fast Kernel Headers” Tree -v1: Eliminate the Linux Kerne... by theon144 on Monday January 03, 2022 @04:09AM (#29778793)
>The Linux kernel has around 27.8 million lines of code. An increase of .35%

This is horribly misleading; most of these lines of code are drivers, which this patchset doesn't even concern.

It's still a massive change that only a handful of developers will ever be able to review in entirety - a fact to which the size of the project is completely irrelevant - if anything, actually, it urges even more caution, given the implied complexity. Which I believe was (at least in part) parent comment's point - given the importance and ubiquity of the Linux kernel, this may be concerning.

That said, I am very confident in the structures put in place by the kernel devs, their competence and the necessity for such a change - but trivializing a 100k LoC patchset because the project it's intended to land in is even more colossally complex isn't how I'd choose my approach.

Re:“Fast Kernel Headers” Tree -v1: Eliminate the Linux Kerne... by Denvercoder9 on Monday January 03, 2022 @08:47AM (#29780720)
> This is horribly misleading; most of these lines of code are drivers, which this patchset doesn't even concern.

That's not true at all, a big part of those added lines are added includes in drivers.

E.g. this commit I picked at random adds 1500 lines, of which just a few procent are in the core kernel: https://git.kernel.org/pub/scm/linux/kernel/git/mingo/tip.gi...

Re:“Fast Kernel Headers” Tree -v1: Eliminate the Linux Kerne... by bsder on Sunday January 02, 2022 @07:45PM (#29775939)
> You have to have an awfully good reason to add 100k lines of code to a project... And I don't think merely shaving 50% off the build time is enough.

In Ingo's post, he points out that the main speedup is coming from the fact that the expansion after the C preprocessor step is a LOT smaller.

That's a lot of decoupling. As someone who had to go rattling over the USB gadget subsystem, I can tell you that running "grep" with "find" was the standard way to find some data structure buried in a file included 8 layers deep. Having those data structures in files actually mentioned by the file you're working on would be a huge cognitive load improvement as well as make tool assistance much more plausible.

Even if this particular patch doesn't land, it lights the path. What types of changes need to be made are now clear. How many changes are required before you see the improvement is now clear. With those, the changes required can be driven down into the maintainers and rolled out incrementally, if desired.

Re:“Fast Kernel Headers” Tree -v1: Eliminate the Linux Kerne... by wott on Monday January 03, 2022 @02:09AM (#29778174)
> As someone who had to go rattling over the USB gadget subsystem, I can tell you that running "grep" with "find" was the standard way to find some data structure buried in a file included 8 layers deep.

It has always amazed me how finding something which originally seemed a trivial little thing, usually meant going through a chain of #defines and typedefs across many header files. It's the same with GLibc, by the way. It' a bit like when you hike to a summit by following a crest path: you always think the next hump in sight is the right one, your destination, the promise land; and when you reach it, dammit, it wasn't, your goal is actually the next one. Or perhaps the next after the next. Or...

Re:“Fast Kernel Headers” Tree -v1: Eliminate the Linux Kerne... by cassepipe on Monday January 03, 2022 @11:18AM (#29782309)
Yes, actually when I came to C and asked on stackexchange/unix&linux how I could search which libc header I had to include in order to use a defined macro or find type declaration,without a web search, my question was shot down in the hour and I was recommended to either make a web search or grep and good luck. This how desperate we are : We can't handle newbies putting that truth in front of us.
Re:“Fast Kernel Headers” Tree -v1: Eliminate the Linux Kerne... by yjftsjthsd-h on Sunday January 02, 2022 @09:30PM (#29776656)
> As someone who had to go rattling over the USB gadget subsystem, I can tell you that running "grep" with "find" was the standard way to find some data structure buried in a file included 8 layers deep.

As someone who tried poking around: Oh good; I assumed I was just missing something. Alternatively, oh no; I had assumed I was missing something and there was a more elegant tool out there.

Re:“Fast Kernel Headers” Tree -v1: Eliminate the Linux Kerne... by alexforencich on Monday January 03, 2022 @03:26AM (#29778550)
https://elixir.bootlin.com/linux/latest/source can be far more helpful than grep for this sort of thing
Re:“Fast Kernel Headers” Tree -v1: Eliminate the Linux Kerne... by fargle on Monday January 03, 2022 @12:21AM (#29777618)
> You have to have an awfully good reason to add 100k lines of code to a project

yes. and this is very, very good reason. As another poster said, you at 0.35% lines to make it compile almost twice as fast? And you're not happy about that?

> Think how many lines are now duplicate (and therefore need to be updated in twice ...

OK, how many? None! That's how many. Adding proper header dependencies to the .c module doesn't duplicate anything. Unless you think adding #include <stdio.h> in every module somehow creates unmaintainable duplication.

> Think how much extra stuff someone needs to skim through looking for the relevant file or part of the file.

OK. Hrm... I think a lot, lot less is how much. That's the whole point of a major cleanup like this. Proper decoupling. Headers that you use are obvious where they belong not being brought in with some action-at-a-distance accident.

Re:“Fast Kernel Headers” Tree -v1: Eliminate the Linux Kerne... by tedunangst on Sunday January 02, 2022 @08:14PM (#29776161)
Maybe the people developing the project have some insights into which build improvements they would benefit from.

Having to recompile the entire tree every time you change a seemingly unrelated header gets old fast.

Re:“Fast Kernel Headers” Tree -v1: Eliminate the Linux Kerne... by stjohnswarts on Sunday January 02, 2022 @09:08PM (#29776522)
You need to read the article. It explains all this.