IP Library › Granted Patent US 10,606,776
Granted Patent B2
US 10,606,776 · App. 15/954,325 · Granted Mar 31, 2020

Adding dummy requests to a submission queue to manage processing queued requests according to priorities of the queued requests

Inventors: Lokesh M. Gupta (Tucson, AZ); Matthew G. Borlick (Tucson, AZ); Kevin J. Ash (Tucson, AZ)
Assignee: INTERNATIONAL BUSINESS MACHINES CORPORATION
G06F13/18G06F12/0842G06F13/1668G06F2212/1024G06F2213/0026
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 10,606,776
App. No.
15/954,325
Filed
Apr 16, 2018
Granted
Mar 31, 2020
Kind
B2
Art Unit
2615
USPC
710/40
Abstract

Provided are a computer program product, system, and method for adding dummy requests to a submission queue to manage processing of queued requests according to priorities of the queued requests. A determination is made of a priority for a request to stage a track from the storage device to the cache or to destage a track from the cache to the storage device, comprising a first priority or a second priority. The first priority is higher than the second priority. At least one dummy request is added to a queue in response to the request having the second priority. The controller upon processing a dummy request in the queue discards the dummy request without performing an operation with respect to the storage device. An I/O request having the second priority is added to the queue. The controller processes the I/O request to stage or destage data.

Claims (64)

1. A computer program product for queuing requests to stage and destage data between a cache and a storage device processed by a controller, the computer program product comprising a computer readable storage medium having computer readable program code embodied therein that is executable to perform operations, the operations comprising:

determining a priority for a request to stage a track from the storage device to the cache or to destage a track from the cache to the storage device, wherein the priority comprises a first priority or a second priority, wherein the first priority is higher than the second priority;

in response to the request having the second priority, performing:

determining whether a queue includes any dummy requests;

adding a first number of dummy requests to the queue in response to determining that the queue does not include any dummy requests; and

adding a second number of dummy requests to the queue in response to determining that the queue includes dummy requests, wherein the second number is less than the first number, wherein the controller, upon processing a dummy request in the queue, discards the dummy request without performing an operation with respect to the storage device; and

adding an I/O request having the second priority to the queue, wherein the controller, upon processing the I/O request, stages or destages data between the cache and the storage device.

2. The computer program product of claim 1 , wherein the adding the I/O request to the queue comprises adding the I/O request to follow an added at least one dummy request in the queue.

3. The computer program product of claim 1 , wherein the operations further comprise:

receiving a subsequent request to stage or destage data having the first priority;

determining whether there is a dummy request in the queue; and

replacing the dummy request in the queue with the subsequent request in response to determining that the queue includes the dummy request.

4. The computer program product of claim 3 , wherein the operations further comprise:

adding an I/O request to the queue for the subsequent request in response to determining that there is no dummy request in the queue.

5. The computer program product of claim 4 , wherein the operations further comprise:

writing to a doorbell register in the controller to indicate to process the queue in response to the replacing the dummy request or adding the I/O request to the queue.

6. The computer program product of claim 1 , wherein the second number is a function of the first number and a number of dummy requests in the queue.

7. The computer program product of claim 1 , wherein the first priority comprises a high priority, wherein the first number of dummy requests is for the first priority, wherein the second number of dummy requests are added to the queue indicating a medium priority in response to the I/O request to stage or destage data having a low priority, wherein the medium priority is greater than the low priority and less than the high priority.

8. The computer program product of claim 7 , wherein the operations further comprise:

adding dummy requests to the queue indicating the high priority in response to the I/O request to stage or destage data having the medium priority.

9. The computer program product of claim 7 , wherein the operations further comprise:

receiving a subsequent request to stage or destage data having the high or the medium priority;

determining whether there is a dummy request in the queue for the high priority in response to the subsequent request having the high priority;

replacing the dummy request in the queue having the high priority with an I/O request having the high priority in response to determining that the queue includes the dummy request having the high priority;

determining whether there is a dummy request in the queue for the medium priority in response to the subsequent request having the medium priority; and

replacing the dummy request in the queue with an I/O request having the medium priority in response to determining that the queue includes the dummy request having the medium priority.

10. A system for queuing requests to stage and destage data between a cache and a storage device processed by a controller, comprising:

at least one processor; and

a computer readable storage medium having computer readable program code embodied that when executed by the at least one processor performs operations, the operations comprising:

determining a priority for a request to stage a track from the storage device to the cache or to destage a track from the cache to the storage device, wherein the priority comprises a first priority or a second priority, wherein the first priority is higher than the second priority;

in response to the request having the second priority, performing:

determining whether a queue includes any dummy requests;

adding a first number of dummy requests to the queue in response to determining that the queue does not include any dummy requests; and

adding a second number of dummy requests to the queue in response to determining that the queue includes dummy requests, wherein the second number is less than the first number, wherein the controller, upon processing a dummy request in the queue discards the dummy request without performing an operation with respect to the storage device; and

adding an I/O request having the second priority to the queue, wherein the controller, upon processing the I/O request stages or destages data between the cache and the storage device.

11. The system of claim 10 , wherein the operations further comprise:

receiving a subsequent request to stage or destage data having the first priority;

determining whether there is a dummy request in the queue; and

replacing the dummy request in the queue with the subsequent request in response to determining that the queue includes the dummy request.

12. The system of claim 10 , wherein the first priority comprises a high priority, wherein the first number of dummy requests is for the first priority, wherein the second number of dummy requests added to the queue indicating a medium priority in response to the I/O request to stage or destage data having a low priority, wherein the medium priority is greater than the low priority and less than the high priority, wherein the first number is greater than the second number.

13. The system of claim 12 , wherein the operations further comprise:

receiving a subsequent request to stage or destage data having the high or the medium priority;

determining whether there is a dummy request in the queue for the high priority in response to the subsequent request having the high priority;

replacing the dummy request in the queue having the high priority with an I/O request having the high priority in response to determining that the queue includes the dummy request having the high priority;

determining whether there is a dummy request in the queue for the medium priority in response to the subsequent request having the medium priority; and

replacing the dummy request in the queue with an I/O request having the medium priority in response to determining that the queue includes the dummy request having the medium priority.

14. A method for queuing requests to stage and destage data between a cache and a storage device processed by a controller, comprising:

determining a priority for a request to stage a track from the storage device to the cache or to destage a track from the cache to the storage device, wherein the priority comprises a first priority or a second priority, wherein the first priority is higher than the second priority;

in response to the request having the second priority, performing:

determining whether a queue includes any dummy requests;

adding a first number of dummy requests to the queue in response to determining that the queue does not include any dummy requests; and

adding a second number of dummy requests to the queue in response to determining that the queue includes dummy requests, wherein the second number is less than the first number, wherein the controller, upon processing a dummy request in the queue, discards the dummy request without performing an operation with respect to the storage device; and

adding an I/O request having the second priority to the queue, wherein the controller, upon processing the I/O request, stages or destages data between the cache and the storage device.

15. The method of claim 14 , further comprising:

receiving a subsequent request to stage or destage data having the first priority;

determining whether there is a dummy request in the queue; and

replacing the dummy request in the queue with the subsequent request in response to determining that the queue includes the dummy request.

16. The method of claim 14 , wherein the first priority comprises a high priority, wherein the first number of dummy requests is for the first priority, wherein the second number of dummy requests are added to the queue indicating a medium priority in response to the I/O request to stage or destage data having a low priority, wherein the medium priority is greater than the low priority and less than the high priority, wherein the first number is greater than the second number.

17. The method of claim 16 , further comprising:

receiving a subsequent request to stage or destage data having the high or the medium priority;

determining whether there is a dummy request in the queue for the high priority in response to the subsequent request having the high priority;

replacing the dummy request in the queue having the high priority with an I/O request having the high priority in response to determining that the queue includes the dummy request having the high priority;

determining whether there is a dummy request in the queue for the medium priority in response to the subsequent request having the medium priority; and

replacing the dummy request in the queue with an I/O request having the medium priority in response to determining that the queue includes the dummy request having the medium priority.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 23, 2018
From: GUPTA, LOKESH M.; BORLICK, MATTHEW G.; ASH, KEVIN J.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 045610/0918 →
Continuity (1)
Related Publication 20190317909A1 · Oct 17, 2019
Cited By (1)
US 12,248,703