Messages in this thread | | | Date | Fri, 18 Jan 2008 17:31:16 +1100 | From | "Mark Hansen" <> | Subject | priority based thread wakeup |
| |
Hello,
Firstly, may I apologise as I am not a member of the LKML, and ask that I be CC'd in any responses that may be forthcoming.
My question concerns the following patch which was incorporated into the 2.6.22 kernel (quoted from that change log):
>Today, all threads waiting for a given futex are woken in FIFO >order (first waiter woken first) instead of priority order. > >This patch makes use of plist (pirotity ordered lists) instead >of simple list in futex_hash_bucket. > >All non-RT threads are stored with priority MAX_RT_PRIO, causing >them to be woken last, in FIFO order (RT-threads are woken first, >in priority order). > >Signed-off-by: Sebastien Dugue <sebastien.du...@bull.net> >Signed-off-by: Pierre Peiffer <pierre.peif...@bull.net>
After updating to this version of the kernel, I was able to observe the above fix, where multiple RT threads invoking pthread_cond_wait(), and the highest priority thread will acquire the mutex first, after the thread holding the mutex calls pthread_cond_signal(); pthread_mutex_unlock()
However, since kernel 2.6.23, it seems that the functionality relating to this "priority based wakeup" has disappeared.
I understand there have been significant changes in this kernel concerning the "Completely Fair Scheduler" replacing the "mainline" scheduler; however my understanding is that the RT functionality would be preserved. This does not appear to be the case based on repeating the experiment described above.
I was wondering if this functionality is considered no longer desirable/necessary?
If not, is it anticipated that this functionality could/would be included in a later kernel?
Regards, Mark Hansen
| |