IP Library › Granted Patent US 7,711,886
Granted Patent B2
US 7,711,886 · App. 11/956,026 · Granted May 4, 2010

Dynamically allocating communication lanes for a plurality of input/output (‘I/O’) adapter sockets in a point-to-point, serial I/O expansion subsystem of a computing system

Assignee: International Business Machines Corporation
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,711,886
App. No.
11/956,026
Granted
May 4, 2010
Kind
B2
Abstract

Methods, systems, and products are disclosed for dynamically allocating communication lanes for a plurality of sockets in a point-to-point, serial I/O expansion subsystem of a computing system, the expansion subsystem including an switch that supports a maximum number of enabled communication lanes, each socket having a same form factor, each socket connected to the switch using a same predefined number of communication lanes, that include: identifying, during a boot process for the computing system, each of the sockets in which an adapter is installed; determining, for each installed adapter, a maximum link width for that adapter; and enabling, for each of the sockets in which an adapter is installed, a set of communication lanes for communications between the adapter installed in that socket and the expansion subsystem switch in dependence upon the maximum link width for each adapter and the maximum number of enabled communication lanes supported by the switch.

Claims (45)

1. A method of dynamically allocating communication lanes for a plurality of input/output (‘I/O’) adapter sockets in a point-to-point, serial I/O expansion subsystem of a computing system, the point-to-point, serial I/O expansion subsystem including an expansion subsystem switch that supports a maximum number of enabled communication lanes, each I/O adapter socket having a same form factor, each I/O adapter socket connected to the expansion subsystem switch using a same predefined number of communication lanes, the method comprising:

identifying, by a lane configuration module during a boot process for the computing system, each of the I/O adapter sockets in which an I/O adapter is installed;

determining, by the lane configuration module for each installed I/O adapter, a maximum link width for that I/O adapter; and

enabling, by the lane configuration module for each of the I/O adapter sockets in which an I/O adapter is installed, a set of communication lanes for communications between the I/O adapter installed in that I/O adapter socket and the expansion subsystem switch in dependence upon the maximum link width for each I/O adapter and the maximum number of enabled communication lanes supported by the expansion subsystem switch;

wherein enabling, by the lane configuration module for each of the I/O adapter sockets in which an I/O adapter is installed, a set of communication lanes further comprises;

determining whether a sum of the maximum link width for all of the installed I/O adapters exceeds the maximum number of enabled communication lanes supported by the expansion subsystem switch; and

enabling set of communication lanes in dependence on the maximum link width for the I/O adapter installed in that I/O adapter socket, the sum of the maximum link width for all of the installed I/O adapters, and the maximum number of enabled communication lanes supported by the expansion subsystem switch if the sum of the maximum link width for all of the installed I/O adapters exceeds the maximum number of enabled communication lanes supported by the expansion subsystem switch.

2. The method of claim 1 wherein enabling, by the lane configuration module for each of the I/O adapter sockets in which an I/O adapter is installed, a set of communication lanes further comprises enabling, for each of the I/O adapter sockets in which an I/O adapter is installed, the set of communication lanes such that the enabled lanes for that I/O adapter socket support the maximum link width for the I/O adapter installed in that I/O adapter socket.

3. The method of claim 1 wherein enabling, by the lane configuration module for each of the I/O adapter sockets in which an I/O adapter is installed, a set of communication lanes further comprises:

determining whether a sum of the maximum link width for all of the installed I/O adapters exceeds the maximum number of enabled communication lanes supported by the expansion subsystem switch; and

enabling the set of communication lanes in dependence upon predefined lane allocation rules if the sum of the maximum link width for all of the installed I/O adapters exceeds the maximum number of enabled communication lanes supported by the expansion subsystem switch.

4. The method of claim 1 further comprising grounding, by the lane configuration module, all of the non-enabled communication lanes.

5. The method of claim 1 further comprising:

receiving, by the lane configuration module, a workload change notification, the workload change notification specifying that a workload for at least one of the I/O adapters has changed; and

reallocating communication lanes for the plurality of I/O adapter sockets in dependence upon the workload change notification.

6. A computing system for dynamically allocating communication lanes for a plurality of I/O adapter sockets in a point-to-point, serial I/O expansion subsystem of the computing system, the point-to-point, serial I/O expansion subsystem including an expansion subsystem switch that supports a maximum number of enabled communication lanes, each I/O adapter socket having a same form factor, each I/O adapter socket connected to the expansion subsystem switch using a same predefined number of communication lanes, the computing system comprising a processor and a computer memory operatively coupled to the processor, the computer memory having disposed within it computer program instructions capable of:

identifying, by a lane configuration module during a boot process for the computing system, each of the I/O adapter sockets in which an I/O adapter is installed;

determining, by the lane configuration module for each installed I/O adapter, a maximum link width for that I/O adapter; and

enabling, by the lane configuration module for each of the I/O adapter sockets in which an I/O adapter is installed, a set of communication lanes for communications between the I/O adapter installed in that I/O adapter socket and the expansion subsystem switch in dependence upon the maximum link width for each I/O adapter and the maximum number of enabled communication lanes supported by the expansion subsystem switch;

wherein enabling, by the lane configuration module for each of the I/O adapter sockets in which an I/O adapter is installed, a set of communication lanes further comprises;

determining whether a sum of the maximum link width for all of the installed I/O adapters exceeds the maximum number of enabled communication lanes supported by the expansion subsystem switch; and

enabling the set of communication lanes in dependence upon the maximum link width for the I/O adapter installed in that I/O adapter socket, the sum of the maximum link width for all of the installed I/O adapters, and the maximum number of enabled communication lanes supported by the expansion subsystem switch if the sum of the maximum link width for all of the installed I/O adapters exceeds the maximum number of enabled communication lanes supported by the expansion subsystem switch.

7. The computing system of claim 6 wherein enabling, by the lane configuration module for each of the I/O adapter sockets in which an I/O adapter is installed, a set of communication lanes further comprises enabling, for each of the I/O adapter sockets in which an I/O adapter is installed, the set of communication lanes such that the enabled lanes for that I/O adapter socket support the maximum link width for the I/O adapter installed in that I/O adapter socket.

8. The computing system of claim 6 wherein enabling, by the lane configuration module for each of the I/O adapter sockets in which an I/O adapter is installed, a set of communication lanes further comprises:

determining whether a sum of the maximum link width for all of the installed I/O adapters exceeds the maximum number of enabled communication lanes supported by the expansion subsystem switch; and

enabling the set of communication lanes in dependence upon predefined lane allocation rules if the sum of the maximum link width for all of the installed I/O adapters exceeds the maximum number of enabled communication lanes supported by the expansion subsystem switch.

9. The computing system of claim 6 wherein the computer memory has disposed within it computer program instructions capable of grounding, by the lane configuration module, all of the non-enabled communication lanes.

10. The computing system of claim 6 wherein the computer memory has disposed within it computer program instructions capable of:

receiving, by the lane configuration module, a workload change notification, the workload change notification specifying that a workload for at least one of the I/O adapters has changed; and

reallocating communication lanes for the plurality of I/O adapter sockets in dependence upon the workload change notification.

11. A computer program product for dynamically allocating communication lanes for a plurality of I/O adapter sockets in a point-to-point, serial I/O expansion subsystem of a computing system, the point-to-point, serial I/O expansion subsystem including an expansion subsystem switch that supports a maximum number of enabled communication lanes, each I/O adapter socket having a same form factor, each I/O adapter socket connected to the expansion subsystem switch using a same predefined number of communication lanes, the computer program product disposed upon a computer readable recordable medium, the computer program product comprising computer program instructions capable of:

identifying, by a lane configuration module during a boot process for the computing system, each of the I/O adapter sockets in which an I/O adapter is installed;

determining, by the lane configuration module for each installed I/O adapter, a maximum link width for that I/O adapter; and

enabling, by the lane configuration module for each of the I/O adapter sockets in which an I/O adapter is installed, a set of communication lanes for communications between the I/O adapter installed in that I/O adapter socket and the expansion subsystem switch in dependence upon the maximum link width for each I/O adapter and the maximum number of enabled communication lanes supported by the expansion subsystem switch;

wherein enabling, by the lane configuration module for each of the I/O adapter sockets in which an I/O adapter is installed, a set of communication lanes further comprises:

determining whether a sum of the maximum link width for all of the installed I/O adapters exceeds the maximum number of enabled communication lanes supported by the expansion subsystem switch; and

enabling the set of communication lanes in dependence upon the maximum link width for the I/O adapter installed in that I/O adapter socket, the sum of the maximum link width for all of the installed I/O adapters, and the maximum number of enabled communication lanes supported by the expansion subsystem switch if the sum of the maximum link width for all of the installed I/O adapters exceeds the maximum number of enabled communication lanes supported by the expansion subsystem switch.

12. The computer program product of claim 11 wherein enabling, by the lane configuration module for each of the I/O adapter sockets in which an I/O adapter is installed, a set of communication lanes further comprises enabling, for each of the I/O adapter sockets in which an I/O adapter is installed, the set of communication lanes such that the enabled lanes for that I/O adapter socket support the maximum link width for the I/O adapter installed in that I/O adapter socket.

13. The computer program product of claim 11 wherein enabling, by the lane configuration module for each of the I/O adapter sockets in which an I/O adapter is installed, a set of communication lanes further comprises:

determining whether a sum of the maximum link width for all of the installed I/O adapters exceeds the maximum number of enabled communication lanes supported by the expansion subsystem switch; and

enabling the set of communication lanes in dependence upon predefined lane allocation rules if the sum of the maximum link width for all of the installed I/O adapters exceeds the maximum number of enabled communication lanes supported by the expansion subsystem switch.

14. The computer program product of claim 11 further comprising computer program instructions capable of grounding, by the lane configuration module, all of the non-enabled communication lanes.

15. The computer program product of claim 11 further comprising computer program instructions capable of:

receiving, by the lane configuration module, a workload change notification, the workload change notification specifying that a workload for at least one of the I/O adapters has changed; and

reallocating communication lanes for the plurality of I/O adapter sockets in dependence upon the workload change notification.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 11, 2008
From: FOSTER, JIMMY G., SR.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 020931/0533 →
Continuity (1)
Related Publication 20090157920A1 · Jun 18, 2009