NIC Driver Debugging & Optimisation Masterclass
Debug and tune real NIC drivers: Rx/Tx paths, GRO/RSS, zero-copy, and production test suites.
Advanced30 lessons
written lessons≈ 15 h
High-Performance Networking & Cloud-Native · 30 illustrated lessons (text/HTML)
Outcomes
- Trace packets from the socket layer down to the NIC
- Find memory, DMA, interrupt and hardware faults in drivers
- Tune NICs with GRO/GSO, RSS and interrupt affinity
Where we teach this
The lessons
Every lesson in this curriculum, in the order we teach it.
- 1Course introduction
- 2The Linux network stack in depth
- 3Core architecture overview
- 4Development and debugging environment setup
- 5Driver module basics
- 6NIC device initialisation explained
- 7Receive (Rx) path explained in depth
- 8Transmit (Tx) path explained in depth
- 9Kernel debugging toolkit, part 1: printk, dynamic debug, procfs and sysfs
- 10Kernel debugging toolkit, part 2
- 11Performance analysis tools
- 12Network-specific debugging tools explained
- 13Debugging memory and DMA problems
- 14Debugging interrupt and concurrency problems
- 15Hardware-related debugging
- 16Performance bottleneck analysis (part 1)
- 17Performance bottleneck analysis (part 2)
- 18Receive-side optimisation: GRO, LRO and RPS
- 19Transmit-side optimisation: GSO, TSO and XPS
- 20Zero-copy and bypass techniques
- 21Multi-queue and load balancing: RSS, Flow Director and IRQ affinity
- 22Driver optimisation in virtualised environments
- 23Advanced traffic control: QoS and the tc framework
- 24Power consumption and power management
- 25Driver code quality and maintenance
- 26Case study 1: debugging and tuning Intel 1G/10G wired NIC drivers
- 27Case study 2: common Wi-Fi driver issues and tuning with the mac80211 framework
- 28Case study 3: high-performance networking in cloud-native settings
- 29Automated testing and continuous integration: a kernel networking test suite
- 30Summary and outlook
All-access library
Every curriculum on this page, with the labs and lab sequences, for a year.