Re: priority inheritance on kernel semaphore?
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: 2014-02-07 17:03:25
* Kim H. Madsen | 2014-01-29 08:07:36 [+0100]:
According to <https://rt.wiki.kernel.org/index.php/RT_PREEMPT_HOWTO> the preempt-rt patch is "Implementing priority inheritance for in-kernel spinlocks and semaphores.". Testing this on 2.6.33.7-rt29 and 3.4.37-rt51 using up()/down() seems to give another result? PI works fine when using rt_mutex instead in the test. Have I failed in the testing/configuration or is the documentation out of date?
The documentation is partly out of date. In the "early" days we had boosting for semaphores. Later (once the semaphore users were not that important / critical) the whole owner tracking part got removed and so we do not have priority boosting for semaphores anymore. There are also reader/write semaphores (rw_semaphore) and this is almost mapped to a mutexe (there is a difference a small difference). Here we have owner tracking and PI on -RT. The price for this is that you can't have >1 simultaneous readers on a rw_semaphore on -RT. So spin_lock, mutex and rw_semaphore should give you PI, plain semaphores don't. John, could you please update the wiki?
- Kim--
Sebastian