Inventors:
Kenneth D. Smeltzer - Delray Beach FL
Alan F. Neel - Boca Raton FL
Timothy J.-M. Louie - Boca Raton FL
Frank J. Schroeder - Boca Raton FL
James P. Ward - Boca Raton FL
Robert H.-C. Lin - Boca Raton FL
Robert G. Hillis - Boca Raton FL
Assignee:
International Business Machines Corporation - Armonk NY
International Classification:
G06F 1324
Abstract:
A system and method is provided for detecting and correcting a lost hardware interrupt generated by an input/output device in a multiple I/O port computer environment. The lost interrupt condition is caused by the simultaneous occurrence of (i) the reading and subsequent resetting of a interrupt request status bit in an I/O port by a device driver and (ii) the setting of the interrupt request status bit by an I/O device attached to the port. Because the interrupt request status bit is reset before it can be read, the device driver fails to see an acknowledgement of the previous data transmission to the I/O device, and the system encounters a deadlock condition. After a normal timeout timer expires the device driver terminates transmission of data and returns a "cancel or retry" message to the request originator. The present invention prevents a deadlock condition in this situation by providing a second timer in addition to and of significantly less duration than the normal timeout timer. Upon expiration of this additional timer, the device driver, upon satisfying a number of conditions, presumes that an interrupt has been lost, and proceeds to send the next byte of data to the I/O device, thereby preventing a deadlock condition.