Real-Time Scheduling Support in GNU Radio 4
Abstract
GNU Radio 4 (GR4) introduces a modular scheduling framework in which application-defined schedulers can replace the runtime’s default. This is a powerful foundation for more predictable and performant software-defined radio. However, the framework mainly encourages customization of how blocks are distributed across worker threads. All workers share an execution loop that traverses blocks in a fixed order. Consequently, when a block runs follows from its position in that order rather than from the urgency of its work, leaving room for tighter control from a real-time perspective.
This paper presents work in progress on real-time scheduling support in GR4, built atop its modular scheduler API, with the goal of allowing latency-sensitive flowgraphs to be scheduled, and ultimately analyzed, using results from real-time scheduling theory. The order in which a worker thread serves its blocks is made a configurable policy that composes with GR4’s existing schedulers. Static- and dynamic-priority policies, such as rate monotonic and earliest deadline first, respectively, are implemented on this interface. A lightweight execution tracer is also introduced, allowing detailed examination of timing behavior and scheduler overheads. Evaluation on IEEE 802.11p receiver flowgraphs demonstrate how different workloads can benefit from the right scheduling policy. This paper and the accompanying presentation discuss these motivations, connect them to the GR4 scheduler design, report the current state of this development effort, and invite feedback from the GNU Radio community.
Downloads
Published
Issue
Section
License
- I grant gnuradio.org a perpetual, non-exclusive license to distribute this article.
- I certify that I have the right to grant this license.
- I understand that submissions cannot be completely removed once accepted.
- I understand that gnuradio.org reserves the right to reclassify or reject any submission.