eeh_handle_normal_event(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

✨ eeh_handle_normal_event(9) ✨

okay so buckle up bestie, this one's from the Kernel API Manual and it's literally the whole "fix the broken thing, or yeet it" pipeline for EEH events on a PE πŸ’…


🌸 NAME 🌸

eeh_handle_normal_event β€” the function that handles EEH events on one specific PE 🫢


πŸŽ€ SYNOPSIS πŸŽ€

void eeh_handle_normal_event (struct eeh_pe *pe );

πŸ¦‹ ARGUMENTS πŸ¦‹

  • pe β€” the EEH PE in question. ⚠️ Heads up: do not touch this after we return, because it may have been invalidated. It's giving "he's not coming back from the group chat" energy. πŸ’€

πŸ’– DESCRIPTION πŸ’–

So what it does is, it attempts to recover the given PE. That's the mission. 🫑

If recovery fails, or the PE has failed too many times (yes, there's a limit, and yes, it's tired of it), the PE gets removed. No more chances. Bye. πŸ‘‹

Here's the lore on how you even end up here, iykyk: while the PHB detects address or data parity errors on a particular PCI slot, the associated PE will be frozen. 😭 And also, DMA's occurring to wild addresses (which usually happen because of bugs in device drivers or in PCI adapter firmware) can cause an EEH error. Fr fr, wild addresses are chaos and we don't stan. On top of that, #SERR, #PERR or other misc PCI-related errors can also trigger EEH errors. It's giving "everything is on fire" honestly. πŸ”₯

And here's the recovery process, step by step, main character energy all the way through:

  1. unplug the device driver β€” which generates hotplug events out to userspace πŸ“€
  2. issue a PCI #RST to the device β€” reset era ✨
  3. reconfigure the PCI config space for all bridges & devices under this slot πŸ”§
  4. finally restart the device drivers β€” which cause a second set of hotplug events to go out to userspace πŸ“€πŸ“€

Two rounds of hotplug events, no cap. That's just how it goes. πŸŽ€


πŸ‘‘ SEE ALSO πŸ‘‘

Kernel file ./arch/powerpc/kernel/eeh_driver.c β€” and all these besties:


okay that's the whole page bestie, go recover something πŸ’œ

mwah, this came from the kernel tree at ./arch/powerpc/kernel, dated October 2026 β€” slay, periodt, and remember: don't use pe after you return πŸ’…βœ¨

πŸ“¦ where this page comes from