Variable timeout method for improving missing-interrupt-handler operations in an environment having I/O devices shared by one or more systems
First Claim
1. A method for use in a computer arrangement having a plurality of operating systems (OSs) in which each OS has a missing interrupt handler (MIH) process for detecting a failed input/output (I/O) device operation for an I/O request issued by the OS to an I/O subsystem, the OSs sharing at least one I/O controller connected to I/O devices, the MIH process comprising the steps of;
- storing a plurality of MIH timeout extension values in the computer arrangement accessible to the MIH process including a primary timeout value and a secondary timeout value,storing at least one CU threshold timeout value accessible to the CU,sending an I/O request from the OS to the CU for an operation by an I/O device connected to the CU, and rejecting the I/O request by the CU if the I/O device is not then available for use by the I/O request,starting a MIH timer process from a zero time value and using the primary timeout value as a current MIH timeout value for the I/O request when the I/O request is sent to the CU, and signalling an MIH timeout when and if the MIH timer process reaches a time equal to or greater than the current MIH timeout value,contending by the I/O request with any other concurrent I/O requests in the CU for use of the I/O device,initiating an CU threshold timer process from a zero time value to measure CU threshold elapsed time for the I/O request if the I/O request is rejected by the CU when the I/O device is busy,indicating a CU threshold timeout if elapsed time measured by the CU threshold timer process is equal to or greater than the CU threshold timeout value,CU signalling a long-busy interrupt to the OS when and if the CU threshold timer process indicates the CU threshold timeout,replacing the current MIH timeout value with the MIH secondary timeout value for an OS timer process in response to the CU signalling of the long-busy interrupt, andsignalling the MIH timeout when and if the MIH timer process reaches an elapsed time equal to or greater than the MIH secondary timeout value to indicate the I/O device operation has failed.
1 Assignment
0 Petitions
Accused Products
Abstract
Missing interrupt handler (MIH) software features for supporting a variable MIH timeout for I/O requests issued by an operating system (OS). The MIH timeout is varied to prevent a false indication of a failure in an I/O device operation, which is indicated if the MIH timeout occurs. By extending the MIH timeout, the I/O device is given more time to complete its operation, and the extension is provided when the device control unit (CU), or the OS, determines an I/O operation cannot complete before the shortest available MIH timeout. The length of a primary MIH timeout period is extended to a secondary MIH timeout period in response to the OS detecting that an I/O request has a long command that requires a long operating time in the I/O device, or a signal from the device'"'"'s CU indicating that the current operation in the I/O device is taking an excessive time without the device being in any error condition.
-
Citations
19 Claims
-
1. A method for use in a computer arrangement having a plurality of operating systems (OSs) in which each OS has a missing interrupt handler (MIH) process for detecting a failed input/output (I/O) device operation for an I/O request issued by the OS to an I/O subsystem, the OSs sharing at least one I/O controller connected to I/O devices, the MIH process comprising the steps of;
-
storing a plurality of MIH timeout extension values in the computer arrangement accessible to the MIH process including a primary timeout value and a secondary timeout value, storing at least one CU threshold timeout value accessible to the CU, sending an I/O request from the OS to the CU for an operation by an I/O device connected to the CU, and rejecting the I/O request by the CU if the I/O device is not then available for use by the I/O request, starting a MIH timer process from a zero time value and using the primary timeout value as a current MIH timeout value for the I/O request when the I/O request is sent to the CU, and signalling an MIH timeout when and if the MIH timer process reaches a time equal to or greater than the current MIH timeout value, contending by the I/O request with any other concurrent I/O requests in the CU for use of the I/O device, initiating an CU threshold timer process from a zero time value to measure CU threshold elapsed time for the I/O request if the I/O request is rejected by the CU when the I/O device is busy, indicating a CU threshold timeout if elapsed time measured by the CU threshold timer process is equal to or greater than the CU threshold timeout value, CU signalling a long-busy interrupt to the OS when and if the CU threshold timer process indicates the CU threshold timeout, replacing the current MIH timeout value with the MIH secondary timeout value for an OS timer process in response to the CU signalling of the long-busy interrupt, and signalling the MIH timeout when and if the MIH timer process reaches an elapsed time equal to or greater than the MIH secondary timeout value to indicate the I/O device operation has failed. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A method for use in a computer arrangement having a plurality of operating systems (OSs) in which each OS has a missing interrupt handler (MIH) process for detecting a failed input/output (I/O) device operation for an I/O request issued by the OS to an I/O subsystem, the OSs sharing at least one I/O controller connected to I/O devices, the MIH process comprising the steps of:
-
storing a plurality of MIH timeout extension values in the computer arrangement accessible to the MIH process including a primary timeout value and a plurality of secondary timeout values, storing a plurality of control unit (CU) threshold timeout values accessible to the CU including a first CU threshold timeout value and a plurality of secondary threshold timeout values, sending an I/O request from the OS to the CU for an operation by an I/O device connected to the CU, and rejecting the I/O request by the CU if the I/O device is not then available for use by the I/O request, starting an MIH timer process from a zero time value and initially using the primary timeout value as a current MIH timeout value for the I/O request when the I/O request is sent to the CU, and signalling an MIH timeout when and if the MIH timer process reaches a time equal to or greater than the current MIH timeout value, contending by the I/O request with any other concurrent I/O requests in the CU for use of the I/O device, initiating an CU threshold timer process to measure CU threshold elapsed time for the I/O request from a zero time value and initially using the primary threshold value as a current CU threshold value if the I/O request is rejected by the CU when the I/O device is busy, indicating a CU threshold timeout if elapsed time measured by the CU threshold timer process is equal to or greater than the current CU threshold value, CU signalling a long-busy interrupt to the OS when and if the CU threshold timer process indicates the CU threshold timeout, replacing the current MIH timeout value with a next one of the plurality of MIH secondary timeout values for the OS timer process in response to the CU signalling of the long-busy interrupt, and replacing the current CU threshold value with a next one of the plurality of CU threshold values for the CU timer process in response to the CU signalling of the long-busy interrupt, and signalling the MIH timeout when and if the MIH timer process reaches an elapsed time equal to or greater than the current MIH timeout value to indicate the I/O device operation has failed. - View Dependent Claims (9, 10)
-
-
11. A method of avoiding false detection of missing I/O interrupt signals by an operating system (OS) in a data processing system having one or more OSs capable of sharing I/O devices, an I/O controller in the data processing system for receiving I/O requests issued by an OS for use of an I/O device connected to the I/O Controller, the method comprising the steps of:
-
delaying a received I/O request in the I/O Controller when an I/O device required by the I/O request is busy and non-available for use by the I/O request, communicating a long-busy delay signal from the I/O Controller to the OS as an error interrupt with status information indicating the error interrupt to simulate a long-busy interrupt when the I/O Controller detects the delay has reached a predetermined threshold time from when the I/O request was received by the I/O Controller and the I/O Controller knows the I/O device is then operational and not available to the I/O request, and extending a MIH (missing interrupt handler) primary timeout period by a predetermined time extension in response to the OS receiving the long-busy delay signal from the CU. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18, 19)
-
Specification