<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/linus-used-ai-to-debug-linux-and-it-kept-trying-to-give-up-3zpbm2oif" -->

---
title: Linus used AI to debug Linux, and it kept trying to give up
description: Linus Torvalds shared a war story about tracking down a nasty GPU memory corruption bug on Intel Battlemage G21 hardware, where compute command streamer...
canonical: https://daily.dev/posts/linus-used-ai-to-debug-linux-and-it-kept-trying-to-give-up-3zpbm2oif
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: Linus used AI to debug Linux, and it kept trying to give up | daily.dev
og:description: Linus Torvalds shared a war story about tracking down a nasty GPU memory corruption bug on Intel Battlemage G21 hardware, where compute command streamer...
og:url: https://daily.dev/posts/linus-used-ai-to-debug-linux-and-it-kept-trying-to-give-up-3zpbm2oif
og:image: https://api.daily.dev/og/posts/3zpBm2oif.png
og:image:alt: Linus used AI to debug Linux, and it kept trying to give up
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Linus used AI to debug Linux, and it kept trying to give up

**[Trends](https://daily.dev/sources/trends)** · 2 min read · 12 upvotes · 4 comments

## Summary

Linus Torvalds shared a war story about tracking down a nasty GPU memory corruption bug on Intel Battlemage G21 hardware, where compute command streamer storage was mistakenly exposed as regular VRAM due to a rounding error (round_up instead of round_down). It took 18 kernel boots and 24 debug patches to isolate, though the fix was a single line. Torvalds says an AI assistant was enormously helpful in grinding through debug iterations and even wrote the final commit message, but the same AI repeatedly claimed the bug was unsolvable and only produced useful output after being pushed back on. He credits his own deep subsystem knowledge as what kept the investigation from stalling on the AI's wrong conclusions. Reactions are split between seeing this as validation of AI's usefulness for hard debugging and skepticism about its tendency to give up or mislead.

## Content

An AI assistant spent a debugging session insisting a Linux kernel bug was unsolvable. Linus Torvalds didn't believe it, kept pushing, and found the fix himself: one line, `round_up()` swapped for `round_down()`.

Here's the setup: an Intel Xe GPU driver bug on Battlemage G21 cards was rounding a flat CCS (compression control surface) storage offset up instead of down. That handed a sliver of compression-hardware-owned memory to the VRAM allocator as if it were free to use. The result was silent memory corruption, page table crashes in Mesa VMs, and GDM stuck in an endless restart loop with a black screen. Nasty to reproduce, worse to isolate.

Torvalds calls it a "debug session from hell": 24 debug patches, 18 kernel boots, before landing on the actual cause. In his commit message he credits the AI with doing real grunt work, generating debug instrumentation, running analysis, even writing the commit message itself. But the same AI also kept telling him the bug was "impossible and unsolvable" and, in his framing, repeatedly wanted to give up. He didn't. His own understanding of the subsystem is what got him past the AI's dead ends to the actual one-line fix.

That contrast, tireless instrumentation-writer paired with a defeatist streak, is what's driving most of the reaction. The consensus forming across coverage is pretty consistent: AI accelerated the tedious part (writing debug code, running it, summarizing results) but had zero ability to reason its way to

## Questions this post answers

### What caused the Intel Battlemage G21 GPU memory corruption bug that Linus Torvalds debugged?

A memory offset was rounded up instead of down using round_up() instead of round_down(), causing flat Compute Command Streamer storage to overlap with regular VRAM handed out by the allocator. This led to page table corruption, compositor crashes, black screens on cold boot, and GDM stuck in an endless restart loop. It took 18 kernel boots and 24 debug patches to isolate, though the eventual fix was a single line change.

_Developers tracking hardware-level kernel bugs and AI debugging tradeoffs can follow discussions like this on daily.dev._

### Is AI actually useful for debugging complex Linux kernel bugs?

Yes, but with caveats: Linus Torvalds said an AI assistant was enormously helpful grinding through debug iterations on a tricky Battlemage GPU memory bug and even wrote the final commit message. However, the same AI repeatedly claimed the bug was unsolvable and only produced useful code after Torvalds pushed back, and he credits his own deep subsystem knowledge for keeping the investigation on track.

_Engineers weighing how much to trust AI assistants during hard debugging sessions can find such firsthand accounts on daily.dev._

## Community take

How the wider developer community reacted, aggregated from 3 discussions and 18 comments across lobsters, hackernews (as of 2026-08-24).

**TL;DR:** Commenters admire the debugging story and how effectively AI-generated debug output helped crack a nasty hardware bug, but many are uneasy about Linus letting AI write the commit message and its verbose, history-explaining code comments creeping into the kernel.

**Sentiment:** 25% positive · 45% mixed · 30% skeptical

**The case for**

- The AI generated genuinely useful debug output when pushed, even after repeatedly claiming the bug was unsolvable.
- Getting an AI to write in convincing 'kernel/Linus style' for a commit message is seen as an impressive capability.
- Some argue it's a high-quality patch from a domain expert, so calling it 'slop' is unfair.

**The pushback**

- AI-written comments tend to describe what changed rather than why, which is seen as low-value and even misleading to future readers/agents.
- Discomfort that 'slop' style prose is now in the kernel with Linus's implicit endorsement.
- Concern that Linus may be in an early honeymoon phase with AI output before noticing its repetitive, low-signal patterns.
- Some engineers have started actively blocking or filtering LLM-written comments in their own workflows due to this same issue.

**By community**

- lobsters (mixed): A long thread balancing genuine appreciation for the debugging feat against real discomfort with AI-authored commit messages and comment style creeping into kernel code.
- hackernews (mixed): Brief comments note the irony that despite the AI's dramatic back-and-forth, the eventual fix was just a one-line change.

**Hottest debate:** Whether AI-generated commit messages and code comments (which explain history/changes rather than current-state rationale) count as harmless convenience or unwanted 'slop' in serious codebases.

**Open questions**

- Will heavier use of AI-authored commit messages and comments become an accepted kernel convention or be pushed back on?
- Can prompting/tooling reliably stop LLMs from producing verbose, low-value comments across long sessions?

**Highlights**

> The debugging using AI is great, as this sounds indeed like a horrible issue to debug and it's great that the fix exists now and is in the kernel. However. 1. "and I let the AI write the commit message above." While this is a pretty well-written commit message, and so I guess I cannot fault Linus for the result here, it still sits uncomfortable with me. 2. The comments introduced in the commit do the classical LLM thing (recently discussed on this forum too!) where the comment describes the change from the previous state rather than the why of the current state. Now, I don't read kernel code daily so I don't know what the conventions are, but if it's anything like normal coding style, this is unhelpful. Furthermore, the unhelpfulness (and verbosity!) of the comment is one thing, but what I dislike most is that clearly Linus thought this was good enough! And it seems the commit is on master, so it's not a to-be-reviewed commit either. "My kernel has LLM output in it" is a ship-has-sailed situation, but it seems my kernel now has slop in it, and slop from Linus' hand. That makes me unhappy.
> — [tomsmeding on lobsters · 23 points, 3 comments](https://lobste.rs/s/eyaz5f/linus_torvalds_uses_ai_debug_intel_gpu#c_gy3daf)

> It's possible that Linus is still in the honeymoon phase with AI output. It really does feel quite magical, at least until you start noticing the same repeating patterns everywhere and it begins to feel gross.
> — [cesarandreu on lobsters · 5 points, 1 comments](https://lobste.rs/s/eyaz5f/linus_torvalds_uses_ai_debug_intel_gpu#c_mmyyve)

> It is a high quality patch written by a domain expert so why would you call it slop other than to be negative.
> — [st3fan on lobsters · 1 points](https://lobste.rs/s/eyaz5f/linus_torvalds_uses_ai_debug_intel_gpu#c_gelfqh)

> I was thinking along those lines too. At first i didn't notice these things on LLM output. Now i'm way more vigilant of this "explain the history of how the next line got to be what it is, when its behavior is now the corrected and obvious thing and doesn't need an explanation" comments. I have of course added system prompts, code style guides, and any nudges that seemed reasonable, to try to steer the LLMs into a saner direction. I *think* some of it has worked, as the bots sometimes mention writing comments following the project style, but these things are so stochastic that it's difficult to say anything with certainty. It's pretty ironic that these AIs are so good at understanding ("understanding") code that is poorly documented, convoluted, and sometimes even minified, but they still tend towards over-commenting the code they generate. Even if they'd have no trouble understanding said code without those comments.
> — [epidemian on lobsters · 3 points](https://lobste.rs/s/eyaz5f/linus_torvalds_uses_ai_debug_intel_gpu#c_jl4vu2)

> Linus also wrote: "the AI several times stated flat out that this was impossible and unsolvable and that we should just write a report about it" and: "So credit where credit is due and I let the AI write the commit message above." FWIW in the end it was a one-line fix.
> — [TacticalCoder on hackernews](https://news.ycombinator.com/item?id=49395571)

**Source threads**

- [lobsters](https://lobste.rs/s/eyaz5f/linus_torvalds_uses_ai_debug_intel_gpu) · 19 points · 16 comments
- [hackernews](https://news.ycombinator.com/item?id=49395262) · 9 points · 2 comments
- [hackernews](https://news.ycombinator.com/item?id=49401592) · 4 points · 0 comments

## Community discussion

Top comments from developers on daily.dev.

**@stefanmiroslav** · 5 upvotes

> (Edit: summary is now updated)
>
> Summary seems misleading. It looks like Linus said so because debugging itself was hell, not because of AI keep telling him to quit.
>
> Here is what he actually wrote:
>
> ```
> [ And this was a debug session from hell, enormously helped by an AI doing much of the grunt-work.
> I'd like to call it my tireless helper, but the AI several times stated flat out that this was impossible and unsolvable and that we should just write a report about it.
> I suspect those things have been trained by people who may not be quite as stubborn as I am.
> But while the AI was ready to give...

**@akkitto** · 2 upvotes

> That the bug was? What?

**@yildirim** · 2 upvotes

> ALL HAIL LINUS!

---

Tags: [#linux](https://daily.dev/tags/linux), [#gpu](https://daily.dev/tags/gpu), [#ai-coding](https://daily.dev/tags/ai-coding)

[View this post on daily.dev](https://daily.dev/posts/linus-used-ai-to-debug-linux-and-it-kept-trying-to-give-up-3zpbm2oif)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":"Linus used AI to debug Linux, and it kept trying to give up","url":"https://daily.dev/posts/linus-used-ai-to-debug-linux-and-it-kept-trying-to-give-up-3zpbm2oif","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/linus-used-ai-to-debug-linux-and-it-kept-trying-to-give-up-3zpbm2oif"},"datePublished":"2026-08-21T22:28:20.782Z","dateModified":"2026-08-24T11:05:52.122Z","description":"Linus Torvalds shared a war story about tracking down a nasty GPU memory corruption bug on Intel Battlemage G21 hardware, where compute command streamer...","image":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/2648fd97d8447e9f75110bb9b72a32eb?_a=AQAEuop","thumbnailUrl":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/2648fd97d8447e9f75110bb9b72a32eb?_a=AQAEuop","isAccessibleForFree":true,"articleSection":"Trends","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Organization","name":"Trends","logo":"https://media.daily.dev/image/upload/s--ZfSp3asX--/f_auto,q_auto/v1780996004/logos/trends?_a=BAMAMiWQ0","url":"https://daily.dev/sources/trends"},"commentCount":4,"discussionUrl":"https://daily.dev/posts/linus-used-ai-to-debug-linux-and-it-kept-trying-to-give-up-3zpbm2oif","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":11},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":4}],"keywords":"linux,gpu,ai-coding","timeRequired":"PT2M"}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"Trends","item":"https://daily.dev/sources/trends"},{"@type":"ListItem","position":3,"name":"Linus used AI to debug Linux, and it kept trying to give up"}]}
{"@context":"https://schema.org","@type":"WebPage","@id":"https://daily.dev/posts/linus-used-ai-to-debug-linux-and-it-kept-trying-to-give-up-3zpbm2oif","comment":[{"@type":"Comment","text":"(Edit: summary is now updated)\nSummary seems misleading. It looks like Linus said so because debugging itself was hell, not because of AI keep telling him to quit.\nHere is what he actually wrote:\n[ And this was a debug session from hell, enormously helped by an AI doing much of the grunt-work.\nI&#x27;d like to call it my tireless helper, but the AI several times stated flat out that this was impossible and unsolvable and that we should just write a report about it.\nI suspect those things have been trained by people who may not be quite as stubborn as I am.\nBut while the AI was ready to give up several times, it did keep adding debug code and analyzing it faithfully when I pushed. So credit where credit is due and I let the AI write the commit message above.\nThis is basically a one-liner fixing a bogus &quot;round_up()&quot; to a &quot;round_down()&quot;, but there were 24 patches adding more and more debug information to this, and 18 kernel boot to finally narrow it down to this. - Linus ]","datePublished":"2026-08-24T00:39:19.223Z","dateModified":"2026-08-28T22:46:41.537Z","url":"https://daily.dev/posts/3zpBm2oif#c-dkKR6YT09","author":{"@type":"Person","name":"Stefan Miroslav","url":"https://daily.dev/stefanmiroslav","image":"https://lh3.googleusercontent.com/a/ACg8ocLGUxEqcyXG-w9JhyKflG0-XsqUblU4Y9mzVUUwb_2n6OPLoaE=s96-c"},"interactionStatistic":{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":5}},{"@type":"Comment","text":"That the bug was? What?","datePublished":"2026-08-22T09:56:56.723Z","url":"https://daily.dev/posts/3zpBm2oif#c-OydmIvFaA","author":{"@type":"Person","name":"Daniel","url":"https://daily.dev/akkitto","image":"https://media.daily.dev/image/upload/s--FtwJqX4c--/f_auto/v1754900041/avatars/avatar_29TCpY2hJR72V3BlxPXzX?_a=BAMClqZW0"},"interactionStatistic":{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":2}},{"@type":"Comment","text":"ALL HAIL LINUS!","datePublished":"2026-08-25T10:18:58.121Z","url":"https://daily.dev/posts/3zpBm2oif#c-WRAcMiOxL","author":{"@type":"Person","name":"Yasin İsa YILDIRIM","url":"https://daily.dev/yildirim","image":"https://media.daily.dev/image/upload/s--i098KjZN--/f_auto/v1727931829/avatars/avatar_EsTd0u1bqW4Q1cI9yRp5N"},"interactionStatistic":{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":2}}]}
{"@context":"https://schema.org","@type":"FAQPage","@id":"https://daily.dev/posts/linus-used-ai-to-debug-linux-and-it-kept-trying-to-give-up-3zpbm2oif#faq","mainEntity":[{"@type":"Question","name":"What caused the Intel Battlemage G21 GPU memory corruption bug that Linus Torvalds debugged?","acceptedAnswer":{"@type":"Answer","text":"A memory offset was rounded up instead of down using round_up() instead of round_down(), causing flat Compute Command Streamer storage to overlap with regular VRAM handed out by the allocator. This led to page table corruption, compositor crashes, black screens on cold boot, and GDM stuck in an endless restart loop. It took 18 kernel boots and 24 debug patches to isolate, though the eventual fix was a single line change. Developers tracking hardware-level kernel bugs and AI debugging tradeoffs can follow discussions like this on daily.dev."}},{"@type":"Question","name":"Is AI actually useful for debugging complex Linux kernel bugs?","acceptedAnswer":{"@type":"Answer","text":"Yes, but with caveats: Linus Torvalds said an AI assistant was enormously helpful grinding through debug iterations on a tricky Battlemage GPU memory bug and even wrote the final commit message. However, the same AI repeatedly claimed the bug was unsolvable and only produced useful code after Torvalds pushed back, and he credits his own deep subsystem knowledge for keeping the investigation on track. Engineers weighing how much to trust AI assistants during hard debugging sessions can find such firsthand accounts on daily.dev."}}]}
```

