Processing channel subsystem pending I/O work queues based on priorities
First Claim
Patent Images
1. A method of managing asynchronous I/O initiation requests within a coprocessor of a computing environment, said method comprising:
- obtaining by said coprocessor one or more asynchronous I/O initiation requests for initiating execution of one or more I/O operations, said one or more asynchronous I/O requests being associated with one or more partitions of said computing environment, and said one or more partitions including one or more operating systems; and
initiating an asynchronous I/O initiation request of said one or more asynchronous I/O initiation requests, said asynchronous I/O initiation request to be used to initiate execution of at least one I/O operation, and said initiating comprising selecting said asynchronous I/O initiation request using (i) at least one priority assigned to at least one asynchronous I/O initiation request of said one or more asynchronous I/O initiation requests, and (ii) at least one priority assigned to at least one partition of said one or more partitions, wherein said (ii) at least one priority is dynamically adjusted by a workload manager considering workload goals of said at least one partition.
1 Assignment
0 Petitions
Accused Products
Abstract
Asynchronous requests, such as input/output (I/O) requests, within a coprocessor of a computing environment are managed. The management of the asynchronous requests is based on priorities associated with the asynchronous requests. This management includes, for instance, selecting an asynchronous request to be processed using a priority scheme, and/or affording resources to the asynchronous requests using a priority scheme.
185 Citations
42 Claims
-
1. A method of managing asynchronous I/O initiation requests within a coprocessor of a computing environment, said method comprising:
-
obtaining by said coprocessor one or more asynchronous I/O initiation requests for initiating execution of one or more I/O operations, said one or more asynchronous I/O requests being associated with one or more partitions of said computing environment, and said one or more partitions including one or more operating systems; and
initiating an asynchronous I/O initiation request of said one or more asynchronous I/O initiation requests, said asynchronous I/O initiation request to be used to initiate execution of at least one I/O operation, and said initiating comprising selecting said asynchronous I/O initiation request using (i) at least one priority assigned to at least one asynchronous I/O initiation request of said one or more asynchronous I/O initiation requests, and (ii) at least one priority assigned to at least one partition of said one or more partitions, wherein said (ii) at least one priority is dynamically adjusted by a workload manager considering workload goals of said at least one partition. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
ordering within said coprocessor said one or more asynchronous requests based on sequencing of priorities; and
selecting a first asynchronous request of the ordered asynchronous requests.
-
-
3. The method of claim 1, wherein the selected asynchronous request has a high priority relative to one or more other asynchronous requests.
-
4. The method of claim 1, wherein said selecting further comprises using a fairness criterion to select said asynchronous request to be processed.
-
5. The method of claim 1, wherein said one or more partitions are at least one logical partition of said computing environment, and wherein said at least one logical partition is coupled to said coprocessor and said at least one logical partition has one or more priority values associated therewith.
-
6. The method of claim 5, further comprising assigning a default priority value to one or more logical partitions of said at least one logical partition.
-
7. The method of claim 5, wherein said at least one logical partition has a range of priority values associated therewith.
-
8. The method of claim 1, wherein said one or more asynchronous requests are located on a queue of said coprocessor.
-
9. The method of claim 1, wherein said coprocessor comprises a channel subsystem.
-
10. A method of managing asynchronous I/O initiation requests within a coprocessor of a computing environment, said method comprising:
-
obtaining by said coprocessor one or more asynchronous I/O initiation requests for initiating execution of one or more I/O operations; and
managing within said coprocessor initiation of said one or more asynchronous I/O initiation requests to be used for initiating execution of one or more I/O operations, wherein said managing uses (i) at least one priority assigned to at least one asynchronous I/O initiation request of said one or more asynchronous I/O initiation requests, and (ii) at least one fairness criterion applied to said at least one asynchronous I/O initiation request to facilitate initiating, prior to a starvation period of time elapsing, one or more initiation requests of said at least one asynchronous I/O initiation request, even if said one or more initiation requests are assigned lower priorities than the priority assigned to at least one other initiation request. - View Dependent Claims (11, 12, 13)
-
-
14. A system of managing asynchronous I/O initiation requests within a coprocessor of a computing environment, said system comprising:
-
means for obtaining by said coprocessor one or more asynchronous I/O initiation requests for initiating execution of one or more I/O operations, said one or more asynchronous I/O requests being associated with one or more partitions of said computing environment, and said one or more partitions including one or more operating systems; and
means for initiating an asynchronous I/O initiation request of said one or more asynchronous I/O initiation requests, said asynchronous I/O initiation request to be used to initiate execution of at least one I/O operation, and said initiating comprising means for selecting an asynchronous I/O initiation request using (i) at least one priority assigned to at least one asynchronous I/O initiation request of said one or more asynchronous I/O initiation requests, and (ii) at least one priority assigned to at least one partition of said one or more partitions, wherein said (ii) at least one priority is dynamically adjusted by a workload manager considering workload goals of said at least one partition. - View Dependent Claims (15, 16, 17, 18, 19, 20, 21, 22)
means for ordering within said coprocessor said one or more asynchronous requests based on sequencing of priorities; and
means for selecting a first asynchronous request of the ordered asynchronous requests.
-
-
16. The system of claim 14, wherein the selected asynchronous request has a high priority relative to one or more other asynchronous requests.
-
17. The system of claim 14 wherein said means for selecting further comprises means for using a fairness criterion to select said asynchronous request to be processed.
-
18. The system of claim 14, wherein said one or more partitions are at least one logical partition of said computing environment, and wherein said at least one logical partition is coupled to said coprocessor and said at least one logical partition has one or more priority values associated therewith.
-
19. The system of claim 18, further comprising means for assigning a default priority value to one or more logical partitions of said at least one logical partition.
-
20. The system of claim 18, wherein said at least one logical partition has a range of priority values associated therewith.
-
21. The system of claim 14, wherein said one or more asynchronous requests are located on a queue of said coprocessor.
-
22. The system of claim 14, wherein said coprocessor comprises a channel subsystem.
-
23. A system of managing asynchronous I/O initiation requests within a coprocessor of a computing environment, said system comprising:
-
means for obtaining by said coprocessor one or more asynchronous I/O initiation requests for initiating execution of one or more I/O operations; and
means for managing within said coprocessor initiation of said one or more asynchronous I/O requests to be used for initiating execution of one or more I/O operations, wherein said means for managing uses (i) at least one priority assigned to at least one asynchronous I/O initiation request of said one or more asynchronous I/O initiation requests, and (ii) at least one fairness criterion applied to said at least one asynchronous I/O initiation request to facilitate initiating, prior to a starvation period of time elapsing, one or more initiation requests of said at least one asynchronous I/O initiation request, even if said one or more initiation requests are assigned lower priorities than the priority assigned to at least one other initiation request. - View Dependent Claims (24, 25, 26)
-
-
27. A system of managing asynchronous I/O initiation requests within coprocessors of a computing environment, said system comprising:
-
a coprocessor adapted to obtain one or more asynchronous I/O initation requests to be initiated for initiating execution of one or more I/O operations, said one or more asynchronous I/O requests being associated with one or more partitions of said computing environment, and said one or more partitions including one or more operating systems; and
a coprocessor adapted to initiate an asynchronous I/O initiation request of said one or more asynchronous I/O initiation requests, said asynchronous I/O initiation request to be used to initiate execution of at least one I/O operation, and said initiating comprising selecting an asynchronous I/O initiation request using (i) at least one priority assigned to at least one asynchronous I/O initiation request of said one or more asynchronous I/O initiation requests, and (ii) at least one priority assigned to at least one partition of said one or more partitions, wherein said (ii) at least one priority is dynamically adjusted by a workload manager considering workload goals of said at least one partition.
-
-
28. A system of managing asynchronous I/O initiation requests within a coprocessor of a computing environment, said system comprising:
-
a coprocessor adapted to obtain one or more asynchronous I/O initiation requests for initiating execution of one or more I/O operations; and
said coprocessor being further adapted to manage initiation of said one or more asynchronous I/O initiation requests to initiate execution of one or more I/O operations, wherein said managing uses (i) at least one priority assigned to at least one asynchronous I/O initiation request of said one or more asynchronous I/O initiation requests, and (ii) at least one fairness criterion applied to said at least one asynchronous I/O initiation request to facilitate initiating, prior to a starvation period of time elapsing, one or more initiation request of said at least one asynchronous I/O initiation request, even if said one or more initiation request are assigned lower priorities than the priority assigned to at least one other initiation request.
-
-
29. At least one program storage device readable by a machine, tangibly embodying at least one program of instructions executable by the machine to perform a method of managing asynchronous I/O initiation requests within a coprocessor of a computing environment, said method comprising:
-
obtaining by said coprocessor one or more asynchronous I/O initiation requests for initiating execution of one or more I/O operations, said one or more asynchronous I/O request being associated with one or more partitions of said computing environment, and said one or more partitions including one or more operating systems; and
initiating an asynchronous I/O initiation request of said one or more asynchronous I/O initiation requests, said asynchronous I/O initiation request to be used to initiate execution of at least one I/O operation, and said initiating comprising selecting an asynchronous I/O initiation request using (i) at least one priority assigned to at least one asynchronous I/O initiation request of said one or more asynchronous I/O initiation requests, and (ii) at least one priority assigned to at least one partition of said one or more partitions, wherein said (ii) at least one priority is dynamically adjusted by a workload manager considering workload goals of said at least one partition. - View Dependent Claims (30, 31, 32, 33, 34, 35, 36, 37)
ordering within said coprocessor said one or more asynchronous requests based on sequencing of priorities; and
selecting a first asynchronous request of the ordered asynchronous requests.
-
-
31. The at least one program storage device of claim 29, wherein the selected asynchronous request has a high priority relative to one or more other asynchronous requests.
-
32. The at least one program storage device of claim 29, wherein said selecting further comprises using a fairness criterion to select said asynchronous request to be processed.
-
33. The at least one program storage device of claim 29, wherein said one or more partitions are at least one logical partition of said computing environment, and wherein said at least one logical partition is coupled to said coprocessor and said at least one logical partition has one or more priority values associated therewith.
-
34. The at least one program storage device of claim 33, wherein said method further comprises assigning a default priority value to one or more logical partitions of said at least one logical partition.
-
35. The at least one program storage device of claim 33, wherein said at least one logical partition has a range of priority values associated therewith.
-
36. The at least one program storage device of claim 29, wherein said one or more asynchronous requests are located on a queue of said coprocessor.
-
37. The at least one program storage device of claim 29, wherein said coprocessor comprises a channel subsystem.
-
38. An article of manufacture, comprising:
-
at least one computer usable medium having computer readable program code means embodied therein for causing the managing of asynchronous I/O initiation requests within a coprocessor of a computing environment, the computer readable program code means in said article of manufacture comprising;
computer readable program code means for causing a computer to provide one or more asynchronous I/O initiation requests for initiating execution of one or more I/O operations; and
computer readable program code means for causing a computer to manage initiation within said coprocessor of said one or more asynchronous I/O initiation requests to be used for initiating execution of one or more I/O operations, wherein said computer readable program code means for causing a computer to manage uses (i) at least one priority assigned to at least one asynchronous I/O initiation request of said one or more asynchronous I/O initiation requests, and (ii) at least one fairness criterion applied to said at least one asynchronous I/O initiation request to facilitate initiating, prior to a starvation period of time elapsing, one or more initiation requests of said at least one asynchronous I/O initiation request, even if said one or more initiation requests are assigned lower priorities than the priority assigned to at least one other initiation request. - View Dependent Claims (39, 40, 41, 42)
-
Specification