Real-Time Handling of GPU Interrupts in LITMUSRT
Department of Computer Science, University of North Carolina, Chapel Hill
Technical Report TR11-002
@techreport{elliott2011real,
title={Real-Time Handling of GPU Interrupts in LITMUS RT},
author={Elliott, G.A. and Sun, C.H. and Anderson, J.H.},
year={2011},
institution={Technical Report TR11-002, Department of Computer Science, University of North Carolina at Chapel Hill}
}
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