Simultaneous configuration of remote input/output hubs utilizing slave processors in a multi-processor, multi-RIO hub data processing system
First Claim
1. A method of configuring remote input/output (I/O) hubs within a data processing system, each one of said remote I/O hubs being a specialized I/O bridge, each one of said remote I/O hubs being coupled to at least one I/O drawer that includes multiple I/O expansion slots, the method comprising:
- competing, by a plurality of processors in said data processing system, to be a master processor;
selecting one of said plurality of processors as said master processor and establishing remaining ones of said plurality of processors as a plurality of slave processors;
assigning, for the purpose of configuring said plurality of remote I/O hubs during initialization of said data processing system, each one of said plurality of remote input/output hubs to one of said plurality of slave processors included within said data processing system;
configuring, by each one of said plurality of slave processors having an assigned one of said plurality of remote input/output hubs, said assigned one of said plurality of remote input/output hubs; and
said plurality of remote I/O hubs being configured by said plurality of slave processors and not by said master processor.
1 Assignment
0 Petitions
Accused Products
Abstract
A method, system, and product are described for configuring remote input/output (RIO) hubs within a data processing system. Each one of the RIO hubs is assigned to one of multiple slave processors which are included within the data processing system. Each one of the slave processors which has an assigned RIO hub then configures its assigned RIO hub. Each RIO hub has an associated data structure that is updated with current configuration information by the slave processor assigned to configure that RIO hub. When the slave processor has finished configuring its assigned RIO hub, the slave processor then sets a configuration flag to indicate the completion of the configuration of the RIO hub.
19 Citations
24 Claims
-
1. A method of configuring remote input/output (I/O) hubs within a data processing system, each one of said remote I/O hubs being a specialized I/O bridge, each one of said remote I/O hubs being coupled to at least one I/O drawer that includes multiple I/O expansion slots, the method comprising:
-
competing, by a plurality of processors in said data processing system, to be a master processor;
selecting one of said plurality of processors as said master processor and establishing remaining ones of said plurality of processors as a plurality of slave processors;
assigning, for the purpose of configuring said plurality of remote I/O hubs during initialization of said data processing system, each one of said plurality of remote input/output hubs to one of said plurality of slave processors included within said data processing system;
configuring, by each one of said plurality of slave processors having an assigned one of said plurality of remote input/output hubs, said assigned one of said plurality of remote input/output hubs; and
said plurality of remote I/O hubs being configured by said plurality of slave processors and not by said master processor. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
establishing a data structure for each of said plurality of remote input/output hubs; and
concurrently updating said data structure for each of said plurality of remote input/output hubs by said plurality of slave processors with current configuration data for each of said plurality of remote input/output hubs.
-
-
5. The method according to claim 4, further comprising the steps of:
-
including a configuration flag in said data structure for each of said plurality of remote input/output hubs; and
in response to one of said plurality of slave processors completing configuration of one of said plurality of remote input/output hubs assigned to said one of said plurality of slave processors, setting a configuration flag in a data structure for said one of said plurality of remote input/output hubs to indicate a configuration of said one of said plurality of remote input/output hubs has completed.
-
-
6. The method according to claim 5, further comprising the step of assigning each one of said plurality of remote input/output hubs to one of a plurality of slave processors utilizing said master processor by passing, from said master processor, a remote I/O hub identifier number of one of said plurality of remote I/O hubs to said one of said plurality of slave processors that is assigned to said one of said plurality of remote I/O hubs.
-
7. The method according to claim 6, further comprising the step of monitoring, by said master processor, said configuration flag in said data structure for each of said plurality of remote input/output hubs to determine when a configuration of each one of said plurality of remote input/output hubs has completed.
-
8. The method according to claim 7, further comprising the step of completing an initialization of said data processing system in response to a determination that said configuration of each one of said plurality of remote input/output hubs has completed.
-
9. A computer program product of configuring remote input/output I/O hubs within a data processing system, each one of said remote I/O hubs being a specialized I/O bridge, each one of said remote I/O hubs being coupled to at least one I/O drawer that includes multiple I/O expansion slots said computer program product comprising:
-
instruction means for competing, by a plurality of processors in said data processing system, to be a master processor;
instruction means for selecting one of said plurality of processors as said master processor and establishing remaining ones of said plurality of processors as a plurality of slave processors;
instruction means for assigning, for the purpose of configuring said plurality of remote I/O hubs during initialization of said data processing system, each one of said plurality of remote input/output hubs to one of said plurality of slave processors included within said data processing system;
instruction means for configuring, by each one of said plurality of slave processors having an assigned one of said plurality of remote input/output hubs, said assigned one of said plurality of remote input/output hubs; and
said plurality of remote I/O hubs being configured by said plurality of slave processors and not by said master processor. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16)
instruction means for establishing a data structure for each of said plurality of remote input/output hubs; and
instruction means for concurrently updating said data structure for each of said plurality of remote input/output hubs by said plurality of slave processors with current configuration data for each of said plurality of remote input/output hubs.
-
-
13. The system according to claim 12, farther comprising:
-
instruction means for including a configuration flag in said data structure for each of said plurality of remote input/output hubs; and
in response to one of said plurality of slave processors completing configuration of one of said plurality of remote input/output hubs assigned to said one of said plurality of slave processors, instruction means for setting a configuration flag in a data structure for said one of said plurality of remote input/output hubs to indicate a configuration of said one of said plurality of remote input/output hubs has completed.
-
-
14. The product according to claim 13, further comprising instruction means for assigning each one of said plurality of remote input/output hubs to one of a plurality of slave processors utilizing said master processor by passing, from said master processor, a remote I/O hub identifier number of one of said plurality of remote I/O hubs to said one of said plurality of slave processors that is to be assigned to said one of said plurality of remote I/O hubs.
-
15. The product according to claim 14, further comprising instruction means for monitoring, by said master processor, said configuration flag in said data structure for each of said plurality of remote input/output hubs to determine when a configuration of each one of said plurality of remote input/output hubs has completed.
-
16. The product according to claim 15, further comprising instruction means for completing an initialization of said data processing system in response to a determination that said configuration of each one of said plurality of remote input/output hubs has completed.
-
17. A data processing system for configuring remote input/output I/O hubs included within said data processing system, each one of said remote I/O hubs being a specialized I/O bridge, each one of said remote I/O hubs being coupled to at least one I/O drawer that includes multiple I/O expansion slots, comprising:
-
a plurality of processors in said data processing system concreting to be a master processor;
one of said plurality of processors being selected as said master processor and remaining ones of said plurality of processors being established as a plurality of slave processor;
each one of said plurality of remote input/output hubs being assigned, for the purpose of configuring said plurality of remote I/O hubs during initialization of said data processing system, to one of said plurality of slave processors included within said data processing system;
each one of said plurality of slave processors having an assigned one of said plurality of remote input/output hubs for configuring said assigned one of said plurality of remote input/output hubs; and
said plurality of remote I/O hubs being configured by said plurality of slave processors and not by said master processor. - View Dependent Claims (18, 19, 20, 21, 22, 23, 24)
a data structure being established for each of said plurality of remote input/output hubs; and
said data structure for each of said plurality of remote input/output hubs being concurrently updated by said plurality of slave processors with current configuration data for each of said plurality of remote input/output hubs.
-
-
21. The system according to claim 20, further comprising:
-
a configuration flag being included in said data structure for each of said plurality of remote input/output hubs; and
in response to one of said plurality of slave processors completing configuration of one of said plurality of remote input/output hubs assigned to said one of said plurality of slave processors, a configuration flag being set in a data structure for said one of said plurality of remote input/output hubs to indicate a configuration of said one of said plurality of remote input/output hubs has completed.
-
-
22. The system according to claim 21, further comprising each one of said plurality of remote input/output hubs being assigned to one of a plurality of slave processors utilizing said master processor by passing, from said master processor, a remote I/O hub identifier number of one of said plurality of remote I/O hubs to said one of said plurality of slave processors that is to be assigned to said one of said plurality of remote I/O hubs.
-
23. The system according to claim 22, further comprising said master processor for monitoring said configuration flag in said data structure for each of said plurality of remote input/output hubs to determine when a, configuration of each one of said plurality of remote input/output hubs has completed.
-
24. The system according to claim 23, further comprising an initialization of said data processing system being completed in response to a determination that said configuration of each one of said plurality of remote input/output hubs has completed.
Specification