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    [W:0.022 / U:34.000 seconds]
    ©2003-2017 Jasper Spaans. hosted at Digital OceanAdvertise on this site