Real Time Linux Workshops
1999 - 2000 - 2001 - 2002 - 2003 - 2004 - 2005 - 2006 - 2007 - 2008 - 2009 - 2010 - 2011 - 2012 - 2013 - 2014 - 2015
Eleventh Real-Time Linux Workshop on September 28 to 30, in Dresden, Germany
Announcement - Hotels - Agenda - Paper Abstracts - Presentations - Registration - Abstract Submission - Xenomai User Meeting - Sponsors
Papers
Requeue PI: Making Glibc Condvars PI-Aware
Darren Hart, IBM
Glibc 2.5 and later provide some support for priority inheritance (PI), but some gaps in the pthread_cond* APIs severely cripple its utility and lead to unexpected priority inversions and unpredictable thread wake-up patterns.
By adding kernel support for proxy locking of rt-mutexes and requeueing of tasks to PI-futexes, glibc can now provide PI support across the entire spectrum of mutex and condvar APIs. This provides for more robust POSIX threading for very complex applications in which completely avoiding a priority inversion is impractical, if not impossible. Broadcast wakeups can now be more efficient, waking threads up in priority order as the contended resource becomes available.