Methods, systems, and computer program products for resource recovery. A region of code can be considered untrusted. To catch problems in the untrusted region, entry points are wrapped with exception logic for processing exceptions raised within the untrusted region. Until an exception has been raised within the untrusted region, instructions corresponding to the entry points may be executed. However, once an exception has been raised within the untrusted region, further access to the untrusted code is prevented. A time element may be recorded for indicating execution time within an untrusted display hardware driver. Once a threshold execution time is reached, indicating a graphics processor hang, driver execution stops and an exception raised. When execution continues, the exception is processed based on the exception logic. Updating the display hardware then occurs without using the graphics processor. The display hardware may notify a user that the graphic processor is not functioning.
A system, methodology and/or computer architecture that facilitates processing device interrupts (including level-triggered interrupts) in a user-mode process is provided. The kernel interrupt handler can cause a dedicated thread in the process to wake and invoke the driver interrupt service routine. This thread can then return control to the kernel interrupt handler. In addition to processing interrupts in an isolated mode, the context switching technique could be used in any isolated environment to process interrupts via dedicated execution context methods.
A system, methodology and/or computer architecture that facilitates processing device interrupts (including level-triggered interrupts) in a user-mode process is provided. The kernel interrupt handler can cause a dedicated thread in the process to wake and invoke the driver interrupt service routine. This thread can then return control to the kernel interrupt handler. In addition to processing interrupts in an isolated mode, the context switching technique could be used in any isolated environment to process interrupts via dedicated execution context methods.
As a result of detecting a device error, calls to device driver logic are redirected to substantially reduce processing time of the driver logic and to return to the caller without providing an indication of the error.