IP Library Granted Patent US 7,707,465
Granted Patent B2
US 7,707,465 · App. 11/340,447 · Granted Apr 27, 2010

Routing of shared I/O fabric error messages in a multi-host environment to a master control root node

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,707,465
App. No.
11/340,447
Granted
Apr 27, 2010
Kind
B2
Abstract

A computer-implemented method, apparatus, and computer program product are disclosed for routing error messages in a multiple host computer system environment to only those host computer systems that are affected by the error. The environment includes multiple host computer systems that share multiple devices utilizing a switched fabric. An error is detected in one of the devices. Routing tables that are stored in fabric devices in the fabric are used to identify ones of the host computer systems that are affected by the error. An error message that identifies the error is routed to only the identified ones of the host computer systems.

Claims (88)

1. A computer-implemented method in a data processing environment that includes a plurality of host computer systems that are coupled to a plurality of I/O adapters utilizing a switched fabric for routing an error message to only ones of said plurality of host computer systems that are affected by an error identified by said error message, said computer-implemented method comprising:

detecting, by one of said plurality of I/O adapters, an error in said one of said plurality of adapters;

generating, by said one of said plurality of I/O adapters, an error message that includes specific information about said error and includes an identifier that identifies said one of said plurality of I/O adapters;

utilizing routing tables that are stored only in hardware switches in said fabric that are connected directly to at least one of said plurality of host computer systems to identify ones of said plurality of host computer systems that are affected by said error; and

routing, by said hardware switches that are connected to said at least one of said plurality of host computer systems, said error message to only said identified ones of said host computer systems.

2. The computer-implemented method according to claim 1 , further comprising:

routing said error message to a single master control computer system, which is included in said plurality of host computer systems, that identifies said ones of said plurality of host computer systems.

3. The computer-implemented method according to claim 1 , further comprising:

routing said error message to a single master control computer system, which is included in said plurality of host computer systems;

waiting, by said master control computer system, until all of said identified ones of said host computer systems have acknowledged a receipt of said error message before clearing said error; and

suspending transmitting traffic to said one of said plurality of adapters until said error is cleared.

4. The computer-implemented method according to claim 1 , further comprising:

receiving, by a first one of said identified ones of said host computer systems, said error message;

acknowledging, by said first one of said identified ones of said host computer systems, said receipt of said error message;

suspending, by said first one of said identified ones of said host computer systems, transmitting traffic from said first one to said one of said plurality of adapters; and

waiting, by said first one, until said error is cleared before resuming transmitting traffic to said one of said plurality of adapters.

5. The computer-implemented method according to claim 1 , further comprising:

including a register only in said hardware switches;

allocating a different bit in said register to each one of said plurality of host computer systems;

in response to said error message, suspending transmitting traffic to said one of said plurality of adapters;

receiving, by said identified ones of said plurality of host computer systems, said error message;

acknowledging, by each one of said identified ones of said host computer systems, said receipt of said error message by setting a bit in said register that is allocated to a respective one of said identified ones of said host computer systems;

polling, by a master control computer system, which is included in said plurality of host computer systems, said register to determine whether all of said identified ones of said plurality of host computer systems have acknowledged a receipt of said error message;

in response to a determination by said master control computer system that all of said identified ones of said plurality of host computer systems have acknowledged a receipt of said error message, clearing, by said master control computer system, said error by clearing all bits in said register to permit said identified ones of said plurality of host computer systems to resume transmitting traffic to said one of said plurality of adapters; and

in response to a determination by said master control computer system that not all of said identified ones of said plurality of host computer systems have acknowledged a receipt of said error message, waiting, by said master control computer system, to clear said error, wherein traffic to said one of said plurality of adapters remains suspended.

6. The computer-implemented method according to claim 1 , further comprising:

traversing, by a master control computer system, said fabric to identify a topology that includes an identification of all of said hardware switches and an interconnectivity of said hardware switches, said plurality of host computer systems, and said plurality of adapters; and

storing said topology in said master control computer system.

7. The computer-implemented method according to claim 1 , further comprising:

determining, for one of said hardware switches, a device topology that identifies all of said hardware switches that are connected to said one of said hardware switches; and

storing said device topology in a routing table included in said one of said hardware switches.

8. An apparatus in a data processing environment that includes a plurality of host computer systems that are coupled to a plurality of adapters utilizing a switched fabric for routing an error message to only ones of said plurality of host computer systems that are affected by an error identified by said error message, said apparatus comprising:

one of said plurality of I/O adapters detecting an error in said one of said plurality of adapters:

said one of said plurality of I/O adapters generating an error message that includes specific information about said error and includes an identifier that identifies said one of said plurality of I/O adapters:

routing tables that are stored only in hardware switches in said fabric that are connected directly to at least one of said plurality of host computer systems for identifying ones of said plurality of host computer systems that are affected by an error that occurred in one of said plurality of adapters that are included within said environment; and

said hardware switches that are connected to said at least one of said plurality of host computer systems routing said error message to only said identified ones of said host computer systems.

9. The apparatus according to claim 8 , further comprising:

a single master control computer system, which is included in said plurality of host computer systems, that identifies said ones of said plurality of host computer systems; and

said error message being routed to said master control computer system.

10. The apparatus according to claim 8 , further comprising:

a single master control computer system, which is included in said plurality of host computer systems;

said error message being routed to said master control computer system;

said master control computer system waiting until all of said identified ones of said host computer systems have acknowledged a receipt of said error message before clearing said error; and

traffic being suspended to said one of said plurality of adapters until said error is cleared.

11. The apparatus according to claim 8 , further comprising:

a first one of said identified ones of said host computer systems receiving said error message;

said first one of said identified ones of said host computer systems acknowledging said receipt of said error message;

said first one of said identified ones of said host computer systems suspending transmitting traffic from said first one to said one of said plurality of adapters; and

said first one waiting until said error is cleared before resuming transmitting traffic to said one of said plurality of adapters.

12. The apparatus according to claim 8 , further comprising:

a register included only in said hardware switches;

a different bit in said register allocated to each one of said plurality of host computer systems;

in response to said error message, traffic being suspended to said one of said plurality of adapters;

said identified ones of said plurality of host computer systems receiving said error message;

each one of said identified ones of said host computer systems acknowledging said receipt of said error message by setting a bit in said register that is allocated to a respective one of said identified ones of said host computer systems;

a master control computer system, which is included in said plurality of host computer systems, polling said register to determine whether all of said identified ones of said plurality of host computer systems have acknowledged a receipt of said error message;

in response to a determination by said master control computer systems that all of said identified ones of said plurality of host computer systems have acknowledged a receipt of said error message, said master control computer system clearing said error by clearing bits in said register to permit said identified ones of said plurality of host computer systems to resume transmitting traffic to said one of said plurality of adapters; and

in response to a determination by said master control computer system that not all of said identified ones of said plurality of host computer systems have acknowledged a receipt of said error message, said master control computer system waiting to clear said error, wherein traffic to said one of said plurality of adapters remains suspended.

13. The apparatus according to claim 8 , further comprising:

a master control computer system traversing said fabric to identify a topology that includes an identification of all of said hardware switches and an interconnectivity of said hardware switches, said plurality of host computer systems, and said plurality of adapters; and

said master control computer system for storing said topology.

14. The apparatus according to claim 8 , further comprising:

a device topology determined, for one of said hardware switches, that identifies all of said hardware switches that are connected to said one of said hardware switches; and

a routing table included in said one of said hardware switches for storing said device topology.

15. A computer program product that is stored in a computer usable medium comprising:

the computer usable medium including computer usable program code for routing an error message to only ones of a plurality of host computer systems that are affected by an error identified by an error message, said plurality of host computer systems coupled to a plurality of adapters utilizing a switched fabric, said computer program product including;

computer usable program code for detecting by one of said plurality of I/O adapters, an error in said one of said plurality of adapters that are included within said environment;

computer usable program code for generating, by said one of said plurality of I/O adapters, an error message that includes specific information about said error and includes an identifier that identifies said one of said plurality of I/O adapters;

computer usable program code for utilizing routing tables that are stored only in hardware switches in said fabric that are connected directly to at least one of said plurality of host computer systems to identify ones of said plurality of host computer systems that are affected by said error; and

computer usable program code for routing, by said hardware switches that are connected to said at least one of said plurality of host computer systems, said error message to only said identified ones of said host computer systems.

16. The computer program product according to claim 15 , further comprising:

computer usable program code for routing said error message to a single master control computer system, which is included in said plurality of host computer systems;

computer usable program code for waiting, by said master control computer system , until all of said identified ones of said host computer systems have acknowledged a receipt of said error message before clearing said error; and

computer usable program code for suspending transmitting traffic to said one of said plurality of adapters until said error is cleared.

17. The computer program product according to claim 15 , further comprising:

computer usable program code for receiving, by a first one of said identified ones of said host computer systems, said error message;

computer usable program code for acknowledging, by said first one of said identified ones of said host computer systems, said receipt of said error message;

computer usable program code for suspending, by said first one of said identified ones of said host computer systems, transmitting traffic from said first one to said one of said plurality of adapters; and

computer usable program code for waiting, by said first one, until said error is cleared before resuming transmitting traffic to said one of said plurality of adapters.

18. The computer program product according to claim 15 , further comprising:

including a register only in said hardware switches;

computer usable program code for allocating a different bit in said register to each one of said plurality of host computer systems;

in response to said error message, computer usable program code for suspending transmitting traffic to said one of said plurality of adapters;

computer usable program code for receiving, by a first one of said identified ones of said plurality of host computer systems, said error message;

computer usable program code for acknowledging, by each one of said identified ones of said host computer systems, said receipt of said error message by setting a bit in said register that is allocated to a respective one of said identified ones of said host computer systems;

computer usable program code for polling, by a master control computer system, which is included in said plurality of host computer systems, said register to determine whether all of said identified ones of said plurality of host computer systems have acknowledged a receipt of said error message;

in response to a determination by said master control computer system that all of said identified ones of said plurality of host computer systems have acknowledged a receipt of said error message, computer usable program code for clearing, by said master control computer system, said error by clearing all bits in said register to permit said identified ones of said plurality of host computer systems to resume transmitting traffic to said one of said plurality of adapters; and

in response to a determination by said master control computer system that not all of said identified ones of said plurality of host computer systems have acknowledged a receipt of said error message, computer usable program code for waiting, by said master control computer system, to clear said error wherein traffic to said one of said plurality of adapters remains suspended.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 10, 2014
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: LENOVO INTERNATIONAL LIMITED
Reel/Frame 034194/0280 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 15, 2006
From: BOYD, WILLIAM T; FREIMUTH, DOUGLAS M; HOLLAND, WILLIAM G; HUNTER, STEVEN W; RECIO, RENATO J; THURBER, STEVEN M; VEGA, MADELINE
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 017306/0306 →