System, method, and program for handling failed connections in an input/output (I/O) system
First Claim
1. A method for managing I/O operations transmitted from a computer system to a processing unit that manages access to a storage device, wherein the I/O operation is executed against the storage device, comprising:
- receiving indication that a request to connect between the processing unit and the computer system failed;
receiving a subsequent I/O operation after receiving indication that the connect request failed;
returning busy to the computer system initiating the subsequent I/O operation in response to receiving indication that the connect request failed; and
retrying the connect request after returning busy.
1 Assignment
0 Petitions
Accused Products
Abstract
Disclosed is a system, method, and program for managing I/O operations transmitted from a computer system to a processing unit. The processing unit manages access to a storage device and executes the I/O operation against the storage device. The processing unit receives indication that a request to connect between the processing unit and the computer system failed. Upon receiving a subsequent I/O operation from the computer system after receiving indication that the connect request failed, the processing unit returns busy to the computer system initiating the subsequent I/O operation in response to receiving indication that the connect request failed. The connect request is retried after returning busy.
64 Citations
33 Claims
-
1. A method for managing I/O operations transmitted from a computer system to a processing unit that manages access to a storage device, wherein the I/O operation is executed against the storage device, comprising:
-
receiving indication that a request to connect between the processing unit and the computer system failed;
receiving a subsequent I/O operation after receiving indication that the connect request failed;
returning busy to the computer system initiating the subsequent I/O operation in response to receiving indication that the connect request failed; and
retrying the connect request after returning busy. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
indicating a busy condition after receiving indication that the connect request failed; and
determining whether the busy condition is indicated after receiving subsequent I/O operations, wherein busy is returned to the computer system initiating the subsequent I/O operations after determining that the busy condition is indicated.
-
-
3. The method of claim 2, further comprising:
-
indicating a non-busy condition after succeeding in retrying the failed connect request;
receiving subsequent I/O operations after indicating a non-busy condition;
determining whether the non-busy condition is indicated after receiving an I/O operation; and
accepting subsequent I/O operations after determining that the non-busy condition is indicated.
-
-
4. The method of claim 1, further comprising:
-
queuing information on the failed connect request in a first queue after receiving indication that the connect request failed;
queuing information on the busy returned to the I/O operation in a second queue;
accessing information on a failed connect request from the first queue;
retrying the accessed failed connect request;
determining whether the retried connect request succeeded; and
returning a busy end status to the computer system after determining that the retried connect request succeeded, wherein the computer system retries the subsequent I/O operation which was suspended as a result of the failed connect request.
-
-
5. The method of claim 4, further comprising:
-
incrementing a counter after queuing information on the failed connect request in the first queue; and
determining whether the counter exceeds a predetermined value before returning busy to the computer system initiating the subsequent I/O operation, wherein busy is returned to the computer system initiating the subsequent I/O operation if the counter exceeds the predetermined value.
-
-
6. The method of claim 5, further comprising indicating a busy condition after determining that the counter exceeds the predetermined value, wherein busy is returned to subsequent I/O operations if the busy condition is indicated.
-
7. The method of claim 6, further comprising reducing the counter and indicating a non-busy condition after determining that the retried connect request succeeded, wherein busy is not returned to subsequent I/O operations when the non-busy condition is indicated.
-
8. The method of claim 4, wherein the busy end status is returned after all request connects in the first queue have been successfully retried.
-
9. The method of claim 1, wherein the computer system and processing unit disconnect after the processing unit receives an I/O operation and the processing unit reconnects with the computer system to present status on the disconnected I/O operation after processing the disconnected I/O operation, wherein the failed connect requests queued in the first queue are requests by the processing unit to reconnect to the system to present status to the system on previously disconnected I/O operations.
-
10. A system managing I/O operations between a computer system and a storage device, wherein the I/O operation is executed against the storage device, comprising:
-
a processing unit controlling access to the storage device and in communication with the computer system;
control logic executed by the processing unit, comprising;
(i) means for receiving indication that a request to connect between the processing unit and the computer system failed;
(ii) means for receiving a subsequent I/O operation after receiving indication that the connect request failed;
(iii) means for returning busy to the computer system initiating the subsequent I/O operation in response to receiving indication that the connect request failed; and
(iv) means for retrying the connect request after returning busy. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17, 18, 19, 20)
means for indicating a busy condition in the memory after receiving indication that the connect request failed; and
means for determining whether the busy condition is indicated in the memory after receiving subsequent I/O operations, wherein busy is returned to the computer system initiating the subsequent I/O operation after determining that the busy condition is indicated.
-
-
12. The system of claim 11, wherein the control logic further comprises:
-
means for indicating a non-busy condition in the memory after succeeding in retrying the failed connect request; and
means for receiving subsequent I/O operations from the computer system after indicating a non-busy condition in the memory;
means for determining whether the non-busy condition is indicated after receiving an I/O operation; and
means for accepting subsequent I/O operations from the computer system after determining that the non-busy condition is indicated.
-
-
13. The system of claim 10, wherein the memory includes a first queue and a second queue, and wherein the control logic further comprises:
-
means for queuing information on the failed connect request in the first queue after receiving indication that the connect request failed;
means for queuing information on the busy returned to the I/O operation in the second queue;
means for accessing information on a failed connect request from the first queue;
means for retrying the accessed failed connect request;
means for determining whether the retried connect request succeeded; and
means for returning a busy end status to the computer system after determining that the retried connect request succeeded, wherein the computer system retries the subsequent I/O operation for which the busy was received.
-
-
14. The system of claim 13, wherein the memory further includes a counter, and wherein the control logic further comprises:
-
means for incrementing the counter in the memory after queuing information on the failed connect request in the first queue; and
means for determining whether the counter exceeds a predetermined value before returning busy to the subsequent I/O operation, wherein busy is returned to subsequent I/O operations if the counter exceeds the predetermined value.
-
-
15. The system of claim 14, further comprising indicating a busy condition in the memory after determining that the counter exceeds the predetermined value, wherein busy is returned to subsequent I/O operations if the busy condition is indicated.
-
16. The system of claim 15, further comprising reducing the counter and indicating a non-busy condition in the memory after determining that the retried connect request succeeded, wherein busy is not returned to subsequent I/O operations when the non-busy condition is indicated.
-
17. The system of claim 13, wherein the busy end status is returned to the computer system after all request connects in the first queue have been successfully retried.
-
18. The system of claim 10, wherein the processing unit and the computer system disconnect after the processing unit receives an I/O operation and the processing unit reconnects with the system to present status on the disconnected I/O operation after processing the disconnected I/O operation, wherein the failed connect requests queued in the first queue are requests by the processing unit to reconnect to the system to present status to the system on previously disconnected I/O operations.
-
19. The system of claim 18, wherein the computer system is a host system including a plurality of channels to communicate I/O operations to the processing unit, wherein the reconnection attempt fails if the processing unit cannot connect to the host system via one of the channels.
-
20. The system of claim 18, further comprising an interface providing links between the processing unit and the channels in the host system, wherein the reconnection attempt fails if the interface cannot provide a link between the processing unit and the channels in the host system.
-
21. A system for managing I/O operations transmitted from a computer system, comprising:
-
a storage device, wherein the I/O operation is executed against the storage device;
a processing unit controlling access to the storage device and in communication with the computer system; and
control logic executed by the processing unit, comprising;
(i) means for receiving indication that a request to connect between the processing unit and the computer system failed;
(ii) means for receiving a subsequent I/O operation after receiving indication that the connect request failed;
(iii) means for returning busy to the computer system initiating the subsequent I/O operation in response to receiving indication that the connect request failed; and
(iv) means for retrying the connect request after returning busy. - View Dependent Claims (22, 23, 24)
means for indicating a busy condition in the memory after receiving indication that the connect request failed; and
means for determining whether the busy condition is indicated in the memory after receiving subsequent I/O operations, wherein busy is returned to the computer system initiating the subsequent I/O operations after determining that the busy condition is indicated.
-
-
23. The system of claim 21, wherein the memory includes a first queue and a second queue, and wherein the control logic further comprises:
-
means for queuing information on the failed connect request in the first queue after receiving indication that the connect request failed;
means for queuing information on the busy returned to the I/O operation in the second queue; and
means for accessing information on a failed connect request from the first queue;
means for retrying the accessed failed connect request;
means for determining whether the retried connect request succeeded; and
means for returning a busy end status to the computer system after determining that the retried connect request succeeded, wherein the computer system retries the subsequent I/O operation for which the busy was received.
-
-
24. The system of claim 22, wherein the memory further includes a counter, and wherein the control logic further comprises:
-
means for incrementing the counter in the memory after queuing information on the failed connect request in the first queue; and
means for determining whether the counter exceeds a predetermined value before returning busy to the computer system initiating the subsequent I/O operation, wherein busy is returned to the computer system initiating the subsequent I/O operations if the counter exceeds the predetermined value.
-
-
25. An article of manufacture for use in programming a processing unit to manage I/O operations transmitted from a computer system to execute against a storage device managed by the processing unit, the article of manufacture comprising computer readable storage media including at least one computer program embedded therein that causes the processing unit to perform:
-
receiving indication that a request to connect between the processing unit and system failed;
receiving a subsequent I/O operation after receiving indication that the connect request failed;
returning busy to the subsequent I/O operation in response to receiving indication that the connect request failed; and
retrying the connect request after returning busy. - View Dependent Claims (26, 27, 28, 29, 30, 31, 32, 33)
indicating a busy condition after receiving indication that the connect request failed; and
determining whether the busy condition is indicated after receiving subsequent I/O operations, wherein busy is returned to the subsequent I/O operations after determining that the busy condition is indicated.
-
-
27. The article of manufacture of claim 26, further causing the processing unit to perform:
-
indicating a non-busy condition after succeeding in retrying the failed connect request;
receiving subsequent I/O operations after indicating a non-busy condition;
determining whether the non-busy condition is indicated after receiving an I/O operation; and
accepting subsequent I/O operations after determining that the non-busy condition is indicated.
-
-
28. The article of manufacture of claim 25, further causing the processing unit to perform:
-
queuing information on the failed connect request in a first queue after receiving indication that the connect request failed;
queuing information on the busy returned to the I/O operation in a second queue; and
accessing information on a failed connect request from the first queue;
retrying the accessed failed connect request;
determining whether the retried connect request succeeded;
returning a busy end status to the computer system after determining that the retried connect request succeeded, wherein the computer system retries the subsequent I/O operation for which the busy was received.
-
-
29. The article of manufacture of claim 28, further causing the processing unit to perform:
-
incrementing a counter after queuing information on the failed connect request in the first queue; and
determining whether the counter exceeds a predetermined value before returning busy to the subsequent I/O operation, wherein busy is returned to subsequent I/O operations if the counter exceeds the predetermined value.
-
-
30. The article of manufacture of claim 29, further causing the processing unit to indicate a busy condition after determining that the counter exceeds the predetermined value, wherein busy is returned to subsequent I/O operations if the busy condition is indicated.
-
31. The article of manufacture of claim 30, further causing the processing unit to perform reducing the counter and indicating a non-busy condition after determining that the retried connect request succeeded, wherein busy is not returned to subsequent I/O operations when the non-busy condition is indicated.
-
32. The article of manufacture of claim 25, wherein the busy end status is returned after all request connects in the first queue have been successfully retried.
-
33. The article of manufacture of claim 25, wherein the computer system and processing unit disconnect after the processing unit receives an I/O operation and the processing unit reconnects with the computer system to present status on the disconnected I/O operation after processing the disconnected I/O operation, wherein the failed connect requests queued in the first queue are requests by the processing unit to reconnect to the system to present status to the system on previously disconnected I/O operations.
Specification