Real-Time Handling of GPU Interrupts in LITMUSRT
Department of Computer Science, University of North Carolina, Chapel Hill
Technical Report TR11-002
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 LITMUS RT, 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.
September 30, 2011 by hgpu
Your response
You must be logged in to post a comment.