The tale of a single register value
Nov 3, 2021Jakub Sitnicki

Summary
This post details a deep dive into debugging a Linux kernel crash (kernel oops) in the ipv4 stack, triggered by a single network packet. It meticulously traces the crash to the `skb_gso_transport_seglen()` function, analyzing the assembly code and register values to pinpoint the cause: an invalid memory access when calculating the inner TCP header length for encapsulated packets. The investigation highlights the challenges of low-level kernel debugging and the importance of understanding packet structures and memory management in network stack operations.
More from the Hardware Infrastructure & Performance Optimization trail
- How we reduced core unit boot time from hours to minutes
- A one-line Kubernetes fix that saved 600 hours a year
- Inside Gen 13- how we built our most powerful server yet
- Launching Cloudflare’s Gen 13 servers- trading cache for cores for 2x edge compute performance
- So long, and thanks for all the fish- how to escape the Linux networking stack