PCIe Device Spurious Reset Recovery via Configuration Table
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
PCIe devices often fail to correctly transition in and out of lower power states when Active State Power Management (ASPM) is enabled, leading to spurious resets, which can result in system hangs, Blue Screen of Death errors, and data loss, prompting the disabling of ASPM to prevent these failures, but this increases power usage.
Innovation Solution
A method and system for detecting and recovering from spurious PCIe device resets by generating a PCIe device table with configuration settings, determining spurious resets via system management interrupts, and restoring configuration settings to recover the devices, while temporarily disabling ASPM support to prevent further resets during the current operating cycle.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Use of energy by moving object
If ASPM is enabled to reduce power consumption, then power usage is reduced, but spurious resets occur causing system hangs and data loss
Solution Approach 1:
The system performs preliminary actions by creating a backup configuration table before enabling ASPM and establishing interrupt handlers in advance. When spurious resets occur, the pre-prepared configuration data allows rapid recovery without system hang, thus maintaining both power savings and system stability.
Solution Approach 2:
The system implements feedback mechanisms through interrupt handlers that detect spurious resets and automatically trigger recovery procedures. The configuration table is updated based on detected reset conditions, and ASPM is dynamically re-enabled after recovery, creating a closed-loop system that maintains stability while preserving power efficiency.
2Reliability
If ASPM is disabled to prevent spurious resets, then system stability is improved, but power consumption increases
Solution Approach 1:
The system dynamically adjusts ASPM enablement based on system state. ASPM is enabled initially for power savings, and only temporarily disabled when spurious resets are detected and recovered from. This dynamic approach ensures ASPM remains enabled most of the time for power efficiency while briefly disabling only when necessary for stability.
Solution Approach 2:
The system changes the operational parameters of ASPM based on detected conditions. When spurious resets occur, the configuration table is modified to disable ASPM for that specific device, and after successful recovery, ASPM is re-enabled. This parameter change approach allows selective application rather than global disablement, preserving overall power efficiency.
3Ease of repair
If configuration settings are restored after spurious reset, then device functionality is recovered, but system complexity increases
Solution Approach 1:
The system creates a copy of the PCIe device configuration settings in a backup table before ASPM is enabled. When spurious resets occur, this copied configuration data is restored to the device, enabling automatic recovery without complex manual intervention. The copying mechanism simplifies recovery while the structured table format manages the complexity of configuration data.
Data Source
AI summary
Embodiments of information handling systems (HSs) and computer-implemented methods are provided herein to detect and recover from spurious PCIe device resets. One embodiment of a disclosed method is performed by a host processor of an IHS that includes a plurality of Peripheral Component Interconnect Express (PCIe) devices, each including a set of PCIe configuration registers containing configuration settings for the PCIe device. The disclosed method includes generating, in response to the IHS transitioning from a lower power state to a higher power state, a PCIe device table containing the configuration settings stored within the set of PCIe configuration registers for each of the PCIe devices; determining, in response to detecting a system management interrupt (SMI), whether or not a spurious reset has occurred for at least one of the PCIe devices; and recovering the at least one PCIe device if said determining indicates that a spurious reset has occurred for the at least one PCIe device.


