Dates and Events: |
OSADL Articles:
2023-11-12 12:00
Open Source License Obligations Checklists even better nowImport the checklists to other tools, create context diffs and merged lists
2022-07-11 12:00
Call for participation in phase #4 of Open Source OPC UA open62541 support projectLetter of Intent fulfills wish list from recent survey
2022-01-13 12:00
Phase #3 of OSADL project on OPC UA PubSub over TSN successfully completedAnother important milestone on the way to interoperable Open Source real-time Ethernet has been reached
2021-02-09 12:00
Open Source OPC UA PubSub over TSN project phase #3 launchedLetter of Intent with call for participation is now available |
Real Time Linux Workshops
1999 - 2000 - 2001 - 2002 - 2003 - 2004 - 2005 - 2006 - 2007 - 2008 - 2009 - 2010 - 2011 - 2012 - 2013 - 2014 - 2015
14th Real Time Linux Workshop, October 18 to 20, 2012 at the Department of Computer Science, University of North Carolina at Chapel Hill
Announcement - Call for papers (ASCII) - Hotels - Directions - Agenda - Paper Abstracts - Presentations - Registration - Abstract Submission - Sponsors - Gallery
The Limitations of Fixed-Priority Interrupt Handling in PREEMPT_RT and Possible Solutions
Glenn Elliott, University of North Carolina at Chapel Hill
James Anderson, University of North Carolina at Chapel Hill
Threaded interrupt handling is a common technique used in real-time operating systems since its use increases system responsiveness and reduces priority inversions. The PREEMPT_RT Linux kernel patch introduces aggressive threaded interrupt handling into the Linux kernel. However, under PREEMPT_RT, interrupt handling threads must be assigned a single fixed scheduling priority. This can become a significant limitation when an interrupt-generating device is shared by processes of differing priorities. In this paper, we show that there is no good option for assigning a single fixed priority to an interrupt handling thread in such cases: If an interrupt thread is given too low a priority, then high-priority device-using processes may be delayed from execution while waiting for their associated interrupts to be processed. If an interrupt thread is given too high a priority, then the processing of interrupts associated with low-priority device-using processes delay the execution of higher-priority processes, even those that may not use a device.
The limitation of fixed-priority threaded interrupt handling in PREEMPT_RT is demonstrated by an implementation-based study of graphics processing units (GPUs) used to perform general purpose computation, an increasingly common practice. We show that even when processes that have timing requirements on the order of twenty milliseconds, and each GPU interrupt takes only about thirty microseconds to process, too high of a GPU interrupt priority can increase the response time of non-GPU-using processes, while too low of a priority can increase the response times of high-priority GPU-using processes.
The paper then surveys real-time threaded interrupt approaches that appear in academic literature and several commercial real-time operating systems. We weigh the suitability of the surveyed approaches for different types of real-time workloads and discuss the pros and cons of each method. Special attention is given to unique situations that only appear in multiprocessor systems.
The goal of this paper is to demonstrate that there currently is a real limitation in PREEMPT_RT interrupt handling and to facilitate the discussion of alternative approaches that may remedy the situation.