Method to Isolate and Fence a Single Port on a Multi-Port Adapter
Original Publication Date: 2005-Jan-20
Included in the Prior Art Database: 2005-Jan-20
On a multi-port I/O adapter, it is necessary to handle severe errors that are related to a single port, and be able to fence that port. This fencing of a port must allow operation to resume or continue on other ports of the adapter without noticeably affecting ongoing operations. Hardware associated with the fenced port must be reset and isolated from continued operations on other ports sharing the same adapter.
THIS COPY WAS MADE FROM AN INTERNAL IBM DOCUMENT AND NOT FROM THE PUBLISHED BOOK
TUC820040295 Jean Barkley/Tucson/IBM Bernhard Laubli, Roger Hathorn, Brent Modesitt, John McCauley, Paul M Richards
Method to Isolate and Fence a Single Port on a Multi -Port Adapter
Currently available error detection, isolation and fencing methods are performed on a physical or logical adapter basis. For an adapter with multiple ports, this would require termination of operations on ports that should not be affected by the error.
Disclosed is a method for detection and isolation of port failures on a multi-port Input/Output (I/O) adapter in order to allow continued operation of other ports on the same adapter.
The disclosed method covers two classifications of errors.
a. Errors detected during initial adapter configuration. A method is provided for communicating the POST (Power On Self Test) results to the subsystem, and record it so the failing hardware can be fenced early in initialization. Subsequently, this port-fenced state is queried in later initialization phases of the adapter to avoid detecting the same error a second time and adversely affecting operation of the other ports.
b. Errors detected during normal runtime operation. Such errors are first classified as to whether they affect a single port, or the complete adapter. A method is disclosed to fence a single port of a multiple port adapter and to isolate the failing components from the other functional adapter ports and the subsystem.
A Port-Available and Port-Fenced state bit is defined for each port on an adapter. When a port is fenced, the Port-Fenced bit is set, and the Port-Available bit is reset. When a port is not Available, then all interrupts from that port are ignored, and no hardware is initialized to enable interrupts. For work that is polled, the ports which are not Available would not be polled for new work. The Port-Fenced state is reset by a re-initialization of the entire system or through a service action which would normally replace the entire adapter.
Errors detected during initial adapter configuration
These errors are detected by the hardware Power On Self Test (POST) which will run separately on all ports when the adapter is powered on. Since each of these ports run independently, each port could fail POST independently. The results of the POST for each port on an adapter needs to be preserved and communicated to the subsystem. If any port fails POST this should not cause the entire adapter to be fenced as in previous implementations, but should be preserved in a data structure to be used by subsequent initialization code as a Port-Fenced state bit.
The following information is made available for each port on an adapter prior to initialization of any hardware on the adapter during configuration:
The results of the POST test,
The fence state of the port prior to running POST
The fence state of the port after running POST and performing error analysis...