NOTE: The event will be held in Central Daylight Time (CDT), UTC -5.

View More Details for Open Source Summit + Embedded Linux Conference North America 2020
Registration Information.
Back To Schedule
Wednesday, July 1 • 1:50pm - 2:40pm
librtpi: Conditional Variables for Real-Time Applications - Gratian Crisan, National Instruments

Sign up or log in to save this to your schedule, view media, leave feedback and see who's attending!

Feedback form is now closed.
Safely sharing data between high priority real-time threads (or processes) and lower priority threads is a common problem in designing real-time applications. A common way to solve this bounded producer/consumer problem is by using conditional variables (condvars).

The glibc implementation of condvars prior to 2.25 requires a patch to fix a priority inversion with an internal lock. More recently, in glibc versions 2.25 and newer, the condvar code was refactored to address a POSIX compliance issue. This in turn broke that fix and modified the implementation in such a way as to prevent real-time usage of glibc condvars by introducing new type of priority inversion.

The librtpi project was formed to address this problem and provide a narrow real-time specific implementation of the condition variable mechanism in a way which can be readily used in lieu of the glibc implementation. It is designed to support priority inheritance on the associated mutex by default and more importantly always wake the waiters in priority FIFO order.

We will discuss the current state of the project, as well as the long term strategy with a goal to increase the awareness and participation in the project.

avatar for Gratian Crisan

Gratian Crisan

Principal Software Engineer, NI
Gratian has been playing around with Linux since 1999 among other embedded and real-time OSes. He is currently employed by NI (formerly National Instruments) on the Real-Time OS team, where he troubleshoots RT problems and is the main maintainer for the PREEMPT_RT based Linux kernels... Read More →

Wednesday July 1, 2020 1:50pm - 2:40pm CDT
ELC Theater B