lkml.org 
[lkml]   [2010]   [Dec]   [15]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH] rtmutex: ensure only the top waiter or higher priority task can take the lock and reduce unrelated boosting
On Wed, 15 Dec 2010, Lai Jiangshan wrote:
> On Wed, Dec 15, 2010 at 8:07 PM, Thomas Gleixner <tglx@linutronix.de> wrote:
> > On Wed, 15 Dec 2010, Lai Jiangshan wrote:
> >> +     if (waiter || rt_mutex_has_waiters(lock)) {
> >> +             unsigned long flags;
> >> +             struct rt_mutex_waiter *top;
> >> +
> >> +             raw_spin_lock_irqsave(&task->pi_lock, flags);
> >> +
> >> +             /* remove the queued waiter. */
> >> +             if (waiter) {
> >> +                     plist_del(&waiter->list_entry, &lock->wait_list);
> >> +                     task->pi_blocked_on = NULL;
> >> +             }
> >> +
> >> +             /*
> >> +              * We have to enqueue the top waiter(if have) into
> >> +              * task->pi_waiters list and would get boost from it.
> >
> > No, we don't get boosted from it. We just have to enqueue it into
> > pi_waiters list. There is no boosting happening at this point. Please
> > be very careful with the comments in this code.
> >
> > Otherwise this looks really interesting. Still this wants to be ported
> > to -rt and stress tested there.
> >
>
> Hi, Thomas,
>
> Where can I find the code of stress testcases?

RT itself will stress test the rtmutex code as much as it goes as we
convert almost every lock into a rtmutex there.

Steven, could you have a look at that ?

Thanks,

tglx
\
 
 \ /
  Last update: 2010-12-15 15:55    [from the cache]
©2003-2011 Jasper Spaans