CPC G06F 3/0613 (2013.01) [G06F 3/0653 (2013.01); G06F 3/0673 (2013.01)] | 13 Claims |
1. A computer-implemented method of managing input/output (I/O) operations at a storage device, the method comprising:
storing data indicating a maximum number of command slots associated with the storage device at a control extension mode page of the storage device;
querying the storage device to identify the maximum number of command slots associated with the storage device;
providing, to the storage device and at a first throughput, a first set of input/output (I/O) operations for processing at the storage device;
updating, based on the first set of I/O operations, a log indicating a number of pending I/O operations to be performed at the storage device;
comparing the pending number of I/O operations to the maximum number of command slots of the storage device; and
determining, based on the comparing, that the pending number of I/O operations is within a first threshold of the maximum number of command slots of the storage device, wherein the first threshold of the maximum number of command slots of the storage device is less than the maximum number of command slots of the storage device, and in response:
providing, to the storage device and at a second throughput, a second set of I/O operations for processing at the storage device, the second throughput less than the first throughput;
updating, based on the second set of I/O operations, the log indicating the number of pending I/O operations to be performed at the storage device;
comparing, based on the updated log, the pending of number of I/O operations to the maximum number of command slots of the storage device;
determining, based on the comparing, that the pending number I/O operations of the updated log is within a second threshold of the maximum number of command slots of the storage device, wherein the second threshold of the maximum number of command slots of the storage device is i) greater than the first threshold and ii) less than the maximum number of command slots of the storage device, and in response:
providing, to the storage device and at the second throughput, a third set of I/O operations for processing at the storage device.
|