Linux on POWER Driver Porting, Optimization, and Test
summary
Covers concrete gotchas for porting Linux I/O drivers to POWER: systems run mostly little-endian, POWER is 64-bit only and favors a 128-byte cache line for best DMA performance, and P9 supports cache inject for testing. Memory ordering must use the right barriers — mandatory, SMP, and DMA variants — or drivers hit stale reads and use-after-free bugs (examples: missing read barrier causing stale flags; speculative prefetch exposing null skb; Intel read barrier is a no-op on POWER). Includes use of mmio macros, prefetch, SP read memory barrier, PCI EEH inject via debugfs and the five-recovery-per-hour EEH limit; references kernel docs and kexec/kdump interactions.
AI-written summary · about
chapters (20)
- 0:00Introduction
- 1:00Agenda
- 1:23byte order
- 3:09cache coherency
- 6:22Linux memory barriers
- 8:41Memory barriers in device drivers
- 10:45Numa effects
- 19:47PCI Address Translation
- 22:40No Translate Direct Address
- 24:33Write Combining
- 25:16Frozen State
- 26:26Eeh Recovery
- 27:39EH Recovery Implementation
- 30:12Reset
- 31:23Eeh
- 32:35Boot
- 33:43KExec
- 37:40OpenPOWER
- 38:07IO Group
- 38:34Questions
related talks
51mGoing Linux on Massive Multicore
38mUh-oh, It's I/O Ordering!
01h 11mPerformance engineering - being friendly to your hardware
21m(Ab)using Linux as a Trusted Bootloader
21mPreview: Operating Systems
35mUsing Linux as a Secure Boot Loader for OpenPOWER Servers
43mLinux Power! (from the Perspective of a PMIC Vendor)
41mA New Type of Instruction for Power
