System and method for using hot plug configuration for PCI error recovery
View Patent ↗A method, system, and program product for recovering from a bus error in a computer system having a hot plug interface. In accordance with the method of the present invention, an operating system transparent interrupt, such as a system management interrupt, is generated in response to a bus error. Responsive to the operating system transparent interrupt, the hot pluggable bus is scanned and a device associated with the error is identified by an interrupt handler invoked by the interrupt. Finally, a hot plug configuration manager, such as an advanced configuration and power interface is utilized to remove the identified device from system operations without having to restart the system.
1. In a computer system having a hot plug interface, a method for recovering from a bus error comprising:
detecting a bus error on an input/output I/O bus of the computer system;
automatically generating an operating system transparent interrupt, responsive to the bus error;
wherein the operating system transparent interrupt is a system management interrupt (SMI) that invokes an SMI handler and is generated in peripheral component interconnect (PCI) bus hardware and transmitted to a processor of the computer system;
responsive to the operating system transparent interrupt:
saving a present operating state of the processor:
initiating one or more registers to support a system management mode (SMM);
commencing execution with SMM; and
invoking an interrupt handler that scans devices on the bus to identify the device associated with the error;
wherein the SMI handler generates a system control interrupt (SCI);
identifying a device associated with the bus error by scanning peripheral devices and searching one or more error condition registers;
determining whether the SCI specifies an error on a hot pluggable bus;
recording the error in an error log;
asserting a user-indicator to indentify which device caused the bus error; and
responsive to the system control interrupt specifying an error on a hot pluggable bus, invoking a hot plug configuration manager to remove the device in accordance with a hot plug configuration process;
wherein the hot plug configuration manager comprises an advanced configuration and power interface (ACPI);
dynamically removing the identified device from system operations utilizing the hot plug configuration manager to perform the removal; and
restoring saved processor state information and resuming operation system operations.
2. In a computer system having a hot plug interface, a system for recovering from a bus error comprising:
a bus device that generates an operating system transparent interrupt responsive to the bus error;
an interrupt handler, responsive to the operating system transparent interrupt, for identifying a device associated with the bus error; and
a hot plug configuration manager that removes the identified device from system operations;
wherein the hot plug configuration manager comprises an advanced configuration and power interface (ACPI)
wherein said hot plug configuration manager removes the device in accordance with a hot plug configuration process;
wherein the operating system transparent interrupt is a system management interrupt (SMI) that invokes an SMI handler and is generated in peripheral component interconnect (PCI) bus hardware and transmitted to a processor of the computer system;
a processor, which, responsive to the operating system transparent interrupt performs the functions of:
saving a present operating state of the processor;
initiating one or more registers to support a system management mode (SMM); and
commencing execution with SSM;
wherein the SMI handler generates a system control interrupt (SCI), said SCI invoking the hot plug configuration manager; and
a bus error handler for;
determining whether the SCI specifies an error on a hot pluggable bus; and
responsive to the system control interrupt specifying an error on a hot pluggable bus, invoking the hot plug configuration manager to perform the removal.