eeh_handle_normal_event(9)
β¨ 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:
- unplug the device driver β which generates hotplug events out to userspace π€
- issue a PCI
#RSTto the device β reset era β¨ - reconfigure the PCI config space for all bridges & devices under this slot π§
- 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:
eeh_pcid_get(9)eeh_pcid_put(9)eeh_disable_irq(9)eeh_enable_irq(9)eeh_report_error(9)eeh_report_mmio_enabled(9)eeh_report_reset(9)eeh_report_resume(9)eeh_report_failure(9)eeh_reset_device(9)eeh_handle_special_event(9)
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
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms