Real-Time Handling of GPU Interrupts in LITMUS RT

2011 
Graphics processing units (GPUs) are becoming increasingly important in today’s platforms as their increased generality allows for them to be used as powerful co-processors. However, unlike standard CPUs, GPUs are treated as I/O devices and require the use of interrupts to facilitate communication with the CPU. Interrupts cause delays in the execution of real-time tasks, challenges in realtime operating system implementation, and difficulties for formal analysis. We examine methods for designing proper real-time interrupt handling in multiprocessor systems and present our solution, klitirqd, an addition to LITMUSRT, to address the challenges caused by interrupts in real-time systems. klitirqd is a flexible solution that improves upon prior approaches by supporting non-partitioned multiprocessor scheduling algorithms while respecting the single-threaded sporadic task model and also supporting asynchronous I/O. We use klitirqd to realize real-time GPU interrupt handling and overcome significant technical challenges of altering the interrupt processes of a closed-source GPU driver. This technique can be generalized to potentially support any closed-source device driver.
    • Correction
    • Source
    • Cite
    • Save
    • Machine Reading By IdeaReader
    16
    References
    2
    Citations
    NaN
    KQI
    []