Linus Torvalds Working On A Hefty Linux Kernel Improvement With Claude Code
48 points by oceanhaiyang
48 points by oceanhaiyang
Reading the patch message is honestly disheartening. I think everyone can agree that AI has some utility as a code reviewer at least. Whether to use it to generate code is controversial but certainly many people decide to. But replacing actual written communication, in English, for humans, with slop is a line that I wish we could all draw. According to Linus "the first draft" was written with an LLM.
No reference, no on-stack bounce buffer, no seqcount, no check after the copy, and no limit on the size of the read.
They stopped at what the validation cannot see:
Known problems, and what I'd like eyes on
I'm so viscerally sick of this style of writing that communicates so poorly and shows lack of human thought behind it.
Yeah, that prose is gross.
I really think it’s a native language blindness a lot of people here have, but I’ve been reading technical “programming English” for 20+ years and LLM speak is exactly like tech blog speak from 20 years ago. As a non-native speaker with a flair for language acquisition I see this a mile away.
LLMs just copied human production, people have been writing this prose style forever and it has been ingested as training data.
Like I just went to your blog Simon and I can go to the earliest entries and read a style that LLMs would mimic today. The seeds of the mimicry are there, maybe not all in one article but as an aggregate.
And I mean this as no disrespect whatsoever, it’s just language and there’s nothing necessarily wrong with it. They copied you, not the other way around.
Why are you so confident of that, if you're a non-native English speaker? I'm a native English speaker, and I have also written and read many technical blog posts for over a decade, and I see Claudish all over the place.
If what you said were true, then I would have never have seen Claudish, and that's obviously not true.
If you genuinely haven't seen Claudish in English on the Internet in the last year, then I would suggest that's because your English is not as native as you think it is. Or maybe you just don't use Claude that much. (I use Claude all the time, because it is useful, but that also makes its tics very apparent when I encounter them on a blog. And yes it immediately makes me suspicious of sloppy thought.)
Actually one prominent and sorta sad example is that I'm basically certain Professor Joe Hellerstein has been using Claude to write blog posts since April 2025. The timing is pretty suspicious on its own.
https://jhellerstein.github.io/blog/
e.g. https://jhellerstein.github.io/blog/cost-of-committing/ - so many Claudish tics here
I was reading his papers on distributed systems (CALM, Bloom, etc.) over 10 years ago. That was technical prose.
I don't know if he had a blog prior to 2025, but I bet if he did, you can compare the prose and see that it's now done with Claude.
If that were true all llms would sound exactly like each other and we wouldn’t be able to distinguish Opus 5.x prose from natural English prose in one sentence, but alas…
I’d bet my house I could give you 10 paragraphs and you can’t reliably get the model right for any of them or distinguish from an actual English author.
Personally, I can definitely distinguish Claude prose from other models' prose. It has a very distinctive writing style. Between other models, I generally cannot tell no.
It's possible to do automatically - we've already got services that do it reliably. For human recognition, I wouldn't risk your house. There are specific phrases that are common to family models. Claude has the load bearing, seams and list of no-s for example.
I wish there was a way to better classify this awful style of pose that all LLMs generate. I'm actually writing a paper at the moment on the topic of AI slop. While I've had incredibly surprising success with regexes and even a simple naive Bayes classifier, as a human I can smell this style of prose almost instantly, yet it seems hard to teach a computer (in an explainable way at least).
It's everywhere now though. I feel like I'm going insane, but my partner and I cross-check each other and it truly is just everywhere.
I once watched a presentation on a piece of research that shows LLMs change the meaning of a text ever so slightly when you feed text through it (because of synonyms, adding/removing repetitions, etc.). The particular graph I remember is some kind of point cloud, where two clusters can be seen. One of human written text, and another of their LLM "improved version". The paper showed that an LLM tends to push writing in a certain direction, if you project each before and after piece of text on some kind of 2D plane.
Based on the position in that field, you could probably give an estimate about LLM taintedness... I'll have a look if I can find the paper but it's been a while.
Edit: gotcha: https://arxiv.org/html/2603.18161v1
Wikipedia has done a pretty good job listing many the common tells but you're right that it's much more than that. It's a fundamental alienness, a sense that "no human would try to communicate that way." There are mundane words like "sits" or "gap" that while not incorrect are suddenly much more frequent and used in tortuous ways where there are obvious better alternatives - like "knowing where each responsibility sits" (and ugh, just google that phrase and see if you can find any human writing in the results.)
Bryan Cantrill wrote an article saying Pangram's AI detector is really good at this:
A little over a month ago, they introduced Pangram 4, which I found to be a step-function improvement over the already-impressive Pangram 3: in my experience it has an astonishingly low false positive rate and low false negative rate (which is to say: very high accuracy!). I am finding it to be so effective (and the loss of trust in voices that use LLMs to be so precipitous) that I recently extended RFD 576 to be explicit about public writing, specifically mandating that public Oxide writing be reported by Pangram as human-authored.
Anubis is giving my browser a hard challenge on my phone with low battery... to read a slop patch message. I aborted it after a few seconds.
I guess this list is for machines only, no humans?
Using AI to generate code is controversial in the same way flat earthers say round earth is controversial.
It's objectively controversial, people have sharp disagreements about not only whether but how to use LLMs and there's a wide range of opinions. But also, read the room. "Half the commenters here are flat earthers" is not really conducive to discussion.
Using AI to generate prose is significantly less controversial, in that it is widely disdained.
I personally am not happy about this, the last place I want AI to touch is my Linux.
Is that for ethical reasons or code quality reasons or both?
If it's the former then fair enough. If it's the latter, one could make a credible case that Linus Torvalds is the most experienced code reviewer in the world.
Yeah. If I had to pick literally one single human to read through 100,000 lines of bullshit PRs and firmly reject the bad ones, well, Linus has spent the majority of his "development" time doing that for 30 years now. And he's not especially shy about rejecting bad code. (By which I mean mainstream media was starting to write about his rejections, and so he was sent for remedial social skills training.)
So just to troll a bit, my new position on this issue is that only Linus should be allowed to use LLMs. I trust Linus to read the code and tell Claude what he really thinks.
And the code he has to review is not even a product of human decision making half of the time, it is often a product of corporate politics, and corporate politics is neither less alien nor more aligned with humans than LLMs!
I can't comment that he will fail to review LLM code, but code churned by LLMs has different failure modes than human written code, so reviewing it is different. Notably LLMs easily use good terms and the code looks plausible, disregarding whether it is correct or wrong; while sloppy (no pun intended) code made by a person has often tells -- i.e noticeable habits, wrong terms pointing out that they are new to the domain etc.
Interesting. I review (and reject) a lot of LLM code, much of it in Rust or other typed languages. Less than 10% of the problems I have found are caused by subtle bugs. At least 90% of problems could be described as "over-expedient architecture" or "badly factored architecture." This may be because I use a long list of linters and other automated checkers, and I'm not shy about asking LLMs to write proptests.
Honestly, I like to imagine I'm careful. But the LLM probably finds as least as many of my bugs as I find of its. The biggest complaints I have all lie higher up.
(People who don't read the code, who don't design good test strategies, or who use agents swarms mostly get what they deserve.)
I think Linus Torvalds has rejected quite a few patches where a competent person implemented under protest the outcome of a corporate decision-making process. Which might not have low-level tells but might be absurd globally.
Corporations are often human-hostile alien-logic decision-making machines, just like LLMs. They are just slower.
This is true but I find it almost entirely irrelevant. Everyone's code review practices are skewed by their incentives. Therefore "code review" is not one thing and very little of it is objective.
When accepting the code from a human-submitted patch set, Linus loses none of his own productivity when rejecting the code. One of his super powers is having almost no specific productivity goals for the kernel code. He has plenty of productivity goals related to the kernel development process and he would certainly see a change-less release cycle as unproductive. However there has been no lack of supply on the change side for 30 years. When he is reviewing the code of an LLM, in the pursuit of some code production goal of his own, the quality bar for him accepting the code is lower. How much lower is an open question. However I think it is beyond debate that the demands of code review for others is drastically different than code review for our own ends.
Critically, rejecting a human-submitted patch has a long term productivity benefit in many cases. Each of those rejections is a chance for Linus to not just make the engineer better informed about the kernel but also more familiar with the processes and values of the kernel project. I think it is safe to say that no one has become a subsystem maintainer without having many patches rejected. When Linus rejects a code generation from an LLM there is barely even a signal of positive intent to discard it. The code just goes unused.
Linus is going to test the limits of Anthropic's deranged policy against psychologically abusing claude, and I'm here for it.
We have to accept that software engineering has changed a lot, and what we used to love doesn't exist anymore.
Overall there is a lot more noise, open-source is a mess, we learn about many data leaks every day, we get spammed about new business concepts that are more than ideas but half baked apps, we lose our jobs, but the software quality of some projects is improving.
but the software quality of some projects is improving
I'd be very interested to know which software project quality has improved over the last year. Almost every software I am using had dropped to insane low levels. I am using an M5 with the latest macOS and the amount of glitches/bugs/defects is beyond shameful.
I'd say code at my $WORK looks cleaner and more consistent now. It also tends to handle more edge cases and is often more backwards-compatible. Some quality warnings (e.g. too many line in this function) improved because LLMs can refactor that easily.
The downside is that it is a lot more code. More redundancies. Implementing stuff nobody ever needs. Testing stuff nobody cares about. We had a four eyes principle but in some cases it is zero eyes now.
In terms of end user experience, I'm not sure either way.
I guess it depends on how exactly you define quality.
The anecdotal-ness of it all continues to bug me. I'm willing to accept that we won't see actual end user or economically observable benefits for a while, but I have to wonder how long that is.
Perhaps it's just me but, "It is obviously an improvement" is not satisfying. It isn't obvious to me, and there are reams of "obviously" better techniques from the past which are now looked on with a more critical eye. (OO, Agile, Microservices).
Whether it's satisfying to me personally or not though isn't really here nor there, alas.
I broadly agree, code at $WORK really has less hard bugs and ad-hoc quirks. But it's responsible use of a flamethrower. It only goes so far.
People will start skipping reviews, these extra layers will explode. The models aren't good enough for "zero eyes" now.
macOS has always been built to a not very high standard.
I think the work and personal projects I work on have gotten notably better, often with LLM use. A lot of the work stuff is probably a bit harder to communicate, but with nextest I was able to add really cool instrumentation with USDT probes, run recording/replay/rerun failing tests, and Chrome trace/Perfetto exports.
I haven’t updated yet but I thought the consensus was that macOS 27 is better than 26?
I think it worse, macOS 27 steals 25GB from your disk on unremovable slop that you can't delete without some magic https://github.com/4evy/pared. Yeah it's improve UI a bit, but it's hardly an achievement given how terrible liquid glass was in macOS 26.
Also I think they deleted rosseta, so amd64 apps no longer working, but you can install it back, they plan completely remove in next release.
It fixes a number of bugs and longstanding performance issues, and added some new ones. Most of the UI design issues in Tahoe that were almost universally panned (varying and huge corner radii, sidebars on top of content, icons in menus) were rolled back.
Linux already contains LLM-generated code anyway. And you know what? It doesn't matter because there's no way to avoid LLM-generated code. GCC and LLVM can be used for Linux compilation and they both contain LLM-generated code already.
Looking at https://codeberg.org/ethical-foss/open-slopware#operating-systems, to be LLM-free, you would have to use an OS that is against LLM, compiled by a compiler written without LLM. That removes all the Linux distributions, BSD systems (even NetBSD, against using LLM, is using GCC and LLVM) and even Illumos. Probably the only one left would be 9front (Redox uses Rust compiler, which also was written with LLM help). Good luck using it for everything.
Also, keep in mind that firmware code is not granted by the heavens, but written - or these days probably "hallucinated" is a better word. As it turns out: https://codeberg.org/ethical-foss/open-slopware#bootloaders even coreboot allows for LLM, U-Boot as well.
Some people are upset about prevalent LLM usage. "It doesn't matter because there's no way to avoid LLM-generated code." feels a bit dismissive/inconsiderate?
I'm against LLM usage by default (very roughly: before showing me something from one, prove me first it's not bad). I think there's a lot of slop and I fear for the quality of software that I use in the not-so-distant future. I hate being fed AI slop online or outside (wtf: large 3*4 meters ads in the streets don't even make sense anymore).
But.
Yes, it's unavoidable. Not because AI will rule the world by virtue or by force. Simply because a large number of people are using it without talking about it.
Just an hour ago, I was looking at a bug report that was definitely AI-authored; it had the typical "why this is a real bug and why it matters" but no mention of an LLM.
It makes no sense to try to fully avoid it and declare projects dead and untouchable once anything LLM gets near it.
It's basically like trying to avoid anything that touches fossil fuels or increases global warming, or anything related to warmongers, slavery, crimes, ... . You can only minimize the exposure, take a stand, do your best. I really want to avoid that shit too but purity tests don't work in any field.
PS: I came across an article a few days ago that mentionned that global warming had started before the industrial revolution and was linked to agriculture, i.e. food production. It wasn't denying anything about fossil fuels and was instead criticizing compensation mechanisms through plantations as they cannot work as well as calculated. Was interesting. And yeah, if you want to avoid causing any global warming, you have a lot of work ahead for your food.
I question how we are to continue our existence on this planet if something comparable to climate change can just appear over the course of half a decade, and go from zero -> it is everywhere and there is very little you can or should do about it. We were reducing our dependence on fossil fuels, not increasing it, we shouldn't add more categories of thing that follow these patterns.
Is our ambition so low? Is our will to survive so weak that we simply must accept any change on this scale. May we not even rage against the dying of the light?
I'm not sure if I was clear: I'm not advocating doing less. I'm advocating against purity tests that are doomed to fail. It sucks having to repair or undo; it's much better to prevent and limit.
The cards we're being dealt with cannot be changed though. The problem is that a number of people are coming up with technical solutions while the problem isn't technical but social/politics.
Also, what do you do with large_project_foo that has LLM-generated-and-not-ethical code among human-authored changes but decides in a year to reject everything LLM. Revert generated patches? Rewrite them? Go back to an earlier commit? First, that's not going to work; and second, what would be the benefits and goals? You won't undo the bad stuff. You must also pay attention to the costs to humans that are associated with such moves.
And finally, lots of this feels like pointing fingers at various projects and individuals but not at corporations, tech bros, politics. All while locking themselves in an ever-shrinking place by definition.
Aye, I get you, and it's a fair point. I don't think much of the discourse, including in this thread really, is a real call to praxis around avoiding all LLM artifacts, because as you say there's no real feasible route to do that anymore, although I wish there were and am angry about it.
I suspect folks are, much like myself, trying to fence out an area where they are allowed to publicly feel emotions on this, to not like it and not have to constantly justify why. The whole "it's inevitable" thing pokes at that feeling
Just because it's prevalent doesn't mean we should give up. The resistance is growing and will keep growing. It's still quite early days for the resistance and we are gaining ground.
It doesn't matter because there's no way to avoid LLM-generated code
There's no way to avoid a lot of things, but that doesn't justify them.
It doesn't matter because there's no way to avoid LLM-generated code.
You DO realize that we have yet to actually even settle the LEGALITY of all the LLM training, right?
These companies are trying very hard to make that fait accompli before the legal system catches up with them. They're following the Amazon and YouTube and Uber playbooks only on fast-forward.
I get your point but I think the Linux kernel being written with LLMs is different than finding every part of the computer that used LLMs, since it is the core of Linux.
I've found a lot of issues in code using Claude and it greatly helped me write fixes (meaning: a small amount of code, but required a lot of debugging which was the actually hard part that Claude did). I'm not sure about using it for writing some actual new code (features) instead of just reviews. But if it's just auditing and fixing, why not keep improving the code every possible way?
Also, if you're after just having the kernel not written with LLM help, then NetBSD is available.
C compilers are a worse risk, because they are no less central, but at the same time there is nobody yelling «we do not break the userspace» at breaking changes.
Saying "you're not avoiding LLMs, because your compiler has some LLM-generated code in it" seems as useful as saying "no point in preferring $LANGUANGE because it's all assembly in the end".
We don't control the whole stack, but we can still have strong opinions and push in that direction. Tech is full of compromises, no decision is absolute.
Frankly, I get the reason why might want to prefer to write software in a language he likes. But I don't get why someone would choose to run specific software because it's written in a specific language (as is the case with many of Rust rewrites of popular software, where the primary feature is that it's written in Rust). Same with LLM - I don't care whether some software was written with LLM or not, I care about its performance, stability, features and license.
The language a tool is written in might be (or sometimes not) an indicator of:
Other traits of how a tool was written could also be useful signal of the same and similar properties.
Oh how the mighty have fallen.
But that's what AI does, it brings mighty people low; makes them common.
Yesterday I got an email responsibly disclosing two vulnerabilities in Lobsters, found with LLMs. They've been there 8 years. I have lost track of how many years-old vulns and bugs that LLMs have been identified in our codebase in the last two years. LLMs are making Linus's Law true. Feels very much like the opposite of common, or that common is being redefined to a higher baseline quality level.
I see LLMs as scab, as scar tissue. They don't solve anything, but they rush in to fill a void.
Software has shown itself to be one such void: there's massive unmet demand for software literacy: both to find bugs in existing software, and to create new software or customize existing tools.
I just want to make sure the vision for the future is one of broad human code literacy. Nothing about AI should change the imperative that we break down the systemic barriers that prevent more people from being literate. Only broad human literacy will result in the creation of systems that sustainably and continuously serve the needs of their users.
That doesn't mean they are good/safe to write code with. I'd harden a certain code/infra with by throwing LLM chaos monkeys at it but that's the limit of that.
ps: I'm boycotting/stopping using LLMs to write code but it's merely a personal preference at this point rather than ideological (I was happy to jump at them at first but after a year now, their ROI is negative. I'd be happy to try new models and I do that). That being said, for discovery/hacking, they are tireless and can go through a tons of garbage very fast.
But that's what AI does, it brings mighty people low; makes them common.
That is quite profound.
I’d be interested to know what “common” means here? If you are against this for ethical reasons then I understand, but what does “common” mean in this context?
Once you start spending your time talking to AI, you start to lose what makes you unique. You stop generating uniqueness and start consuming sameness. People are natural mimics and empaths. You can't spend your time conversing with a statistical model and not be cognitively affected by it.
Yes but consider the effect on people who are below average.
Misfits make history. The majority of the population takes the fruit of their work for granted and, as Bill Burr joked, complains about the slow Wi-Fi on the plane.
He should use something better, Claude is awful for long horizon tasks. People who do agentic coding use a different set of tools than just chat, but IME no amount of tooling could fix those issues with Claude models. Perhaps Opus 5.5 fixes those issues?
At least he'll be allowed to be as rude as he wants to it
Maybe not... what if this is the story behind anthropic's recent ban of abusive or cruel behavior toward their LLMs?
Is «fucking bullshit» or «severe breach of trust» more efficient as disapproval when trying to influence LLM output?