Managing shared devices in a data processing system
First Claim
1. A method for managing devices in a data processing system that includes a plurality of device adapters connected for independent communication with at least one shared device, the method comprising the steps of:
- issuing a command from a first of the plurality of adapters to the at least one shared device;
setting, in the first adapter, first and second timeouts associated with the command;
on expiration of the first timeout, issuing a message from the first adapter to other(s) of the plurality of adapters to request the other adapter(s) to notify the first adapter of any work requested of the shared device by the other adapter(s); and
on expiration of the second timeout, initiating a recovery operation in the data processing system.
2 Assignments
0 Petitions
Accused Products
Abstract
Disclosed is a method and device adapter for managing devices in a data processing system that includes a plurality of device adapters connected for independent communication with at least one shared device (e.g. disk data storage device). The method comprises the steps of: issuing a command from a first of the plurality of adapters to the at least one shared device; setting, in the first adapter, first and second timeouts associated with the command; on expiration of the first timeout value, issuing a message from said first adapter to other(s) of the plurality of adapters to request the other adapter(s) to notify the first adapter of any work requested of the shared device by the other adapter(s); and on expiration of the second timeout value, initiating a recovery operation in the data processing system.
-
Citations
35 Claims
-
1. A method for managing devices in a data processing system that includes a plurality of device adapters connected for independent communication with at least one shared device, the method comprising the steps of:
-
issuing a command from a first of the plurality of adapters to the at least one shared device;
setting, in the first adapter, first and second timeouts associated with the command;
on expiration of the first timeout, issuing a message from the first adapter to other(s) of the plurality of adapters to request the other adapter(s) to notify the first adapter of any work requested of the shared device by the other adapter(s); and
on expiration of the second timeout, initiating a recovery operation in the data processing system. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
on receipt of a notification from one of the other adapter(s) prior to expiry of the second timeout value, extending the second timeout value.
-
-
5. The method of claim 1, wherein the message sent from the first adapter to the other adapter(s) also requests the other adapter(s) to halt sending work to the shared device.
-
6. The method of claim 5, comprising the further step of:
on receipt of the message at each of the other adapter(s), issuing a command from each of the other adapter(s) to the shared device which when completed by the shared device provides an indication to each of the issuing adapter(s) that all the outstanding work initiated at the shared device by that adapter has completed.
-
7. The method of claim 1 wherein the first and second timeouts set by the first adapter vary according to the type of command issued by the first adapter.
-
8. The method of claim 2, comprising the further steps of:
-
issuing a command from one of the plurality of adapters to the shared device to cause an operation that takes longer than a predetermined value;
periodically sending a false completion notification to each of the other adapter(s) to prevent expiry of any second timeout(s) at the other adapter(s).
-
-
9. The method of claim 1 wherein the step of initiating a recovery action comprises resetting the shared device.
-
10. The method of claim 1 wherein each of the plurality of adapters is a storage adapter and the at least one shared device is a mass data storage device of a plurality of data storage devices.
-
11. The method of claim 8, wherein the device is a data storage device and the command issued by the second adapter is a data storage device microcode download command.
-
12. A device adapter for use in a data processing system including a plurality of device adapters connected for independent communication with at least one shared device, the device adapter including:
-
means for issuing a command to the at least one shared device;
means for setting first and second timeouts associated with the command;
means, operable on expiration of the first timeout, to issue a message to each of other(s) of the plurality of adapters to request the other adapter(s) to notify the device adapter of any work requested of the shared device by the other adapter(s); and
means, operable on expiration of the second timeout, to initiate a recovery operation in the data processing system. - View Dependent Claims (13, 14, 15, 16, 17, 18, 19, 20, 21)
means, operable on receipt of a notification from one of the other adapter(s) prior to expiry of the second timeout value, to extend the second timeout value.
-
-
16. The adapter of claim 12, wherein the message to the other adapter(s) also requests the other adapter(s) to halt sending work to the shared device.
-
17. The adapter of claim 12, wherein the means for issuing a command to the shared device is operable on expiration of the first timeout to issue a further command to the shared device which when completed by the shared device provides an indication that all the outstanding work initiated at the shared device by the adapter has completed.
-
18. The adapter of claim 12 wherein the first and second timeouts vary according to the type of command issued by the adapter.
-
19. The adapter of claim 12, further including means, operable on the issuance of a command to the shared device that causes an operation to take longer than a predetermined value, to periodically send a false completion notification to each of the other adapter(s) to prevent expiry of any second timeout(s) at the other adapter(s).
-
20. The adapter of claim 19 wherein the command that causes an operation to take longer than a predetermined value is a data storage device microcode download command.
-
21. The adapter of claim 12 wherein the means for initiating a recovery action in the data processing system is operable to send a reset command to the shared device.
-
22. A data processing system including a plurality of device adapters connected for independent communication with at least one shared device, each of said adapters further comprising:
-
means for issuing a command to the at least one shared device;
means for setting first and second timeouts associated with the command;
means, operable on expiration of the first timeout, to issue a message to each of other(s) of the plurality of adapters to request the other adapter(s) to notify the device adapter of any work requested of the shared device by the other adapter(s); and
means, operable on expiration of the second timeout, to initiate a recovery operation in the data processing system. - View Dependent Claims (23)
-
-
24. A computer program product comprising a computer readable medium having tangibly embodied thereon computer program code means for managing devices in a data processing system including a plurality of device adapters connected for independent communication with at least one shared device, the computer program code means including:
-
computer program code means, executable on a device adapter, for issuing a command to the at least one shared device;
computer program code means, executable on the device adapter, for setting first and second timeouts associated with the command;
computer program code means, executable on the device adapter, that is operable on expiration of the first timeout, to issue a message to each of other(s) of the plurality of adapters to request the other adapter(s) to notify the device adapter of any work requested of the shared device by the other adapter(s); and
computer program code means, executable on the device adapter, that is operable on expiration of the second timeout, to initiate a recovery operation in the data processing system. - View Dependent Claims (25, 26, 27, 28, 29, 30, 31, 32, 33)
computer program code means, executable on the device adapter, that is operable on receipt of a notification from one of the other adapter(s) prior to expiry of the second timeout, to extend the second timeout.
-
-
28. The computer program product of claim 24, wherein the message to the other adapter(s) also requests the other adapter(s) to halt sending work to the shared device.
-
29. The computer program product of claim 24, further including computer program code means executable on the device adapter that is operable on expiration of the first timeout to issue a further command to the shared device which when completed by the shared device provides an indication that all the outstanding work initiated at the shared device by the adapter has completed.
-
30. The computer program product of claim 24 wherein the first and second timeouts are set according to the type of issued command.
-
31. The computer program product of claim 24, further including computer program code means, executable on the device adapter that is operable on the issuance of a command to the shared device that causes an operation to take longer than a predetermined value, to periodically send a false completion notification to each of the other adapter(s) to prevent expiry of any second timeout(s) at the other adapter(s).
-
32. The computer program product of claim 31 wherein the command that causes an operation to take longer than a predetermined value is a data storage device microcode download command.
-
33. The computer program product of claim 24 wherein the computer program code means for initiating a recovery action in the data processing system is operable to send a reset command to the shared device.
-
34. A method for managing devices in a data processing system that includes a plurality of controllers connected for independent communication with at least one shared device, the at least one shared device maintaining a command set of commands issued to it by the controllers, the method comprising the steps of:
in response to a trigger event at a first of the controllers, sending a message from the first controller to the other controller(s) to request the other controller(s) to provide information regarding work requested of the shared device by the other controller(s) thereby to provide the requesting controller with knowledge of the state of the command set at the shared device beyond knowledge of whether the state of the other controller(s) indicates that the other controller(s) is merely alive. - View Dependent Claims (35)
Specification