lkml.org 
[lkml]   [2008]   [Feb]   [22]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
SubjectRe: [PATCH [RT] 08/14] add a loop counter based timeout mechanism
From
Date
On Fri, 2008-02-22 at 11:55 -0800, Sven-Thorsten Dietrich wrote:
>
> In high-contention, short-hold time situations, it may even make sense
> to have multiple CPUs with multiple waiters spinning, depending on
> hold-time vs. time to put a waiter to sleep and wake them up.
>
> The wake-up side could also walk ahead on the queue, and bring up
> spinners from sleeping, so that they are all ready to go when the lock
> flips green for them.
>

I did try an attempt at this one time. The logic was merely if the
pending owner was running, wakeup the next waiter. The results were
terrible for the benchmarks used, as compared to the current
implementation.

What this meant was that virtually every unlock performed a wakeup, if
not for the new pending owner, than the next-in-line waiter.

My impression at the time was that the contention for the rq lock is
significant, regardless of even if the task being woken up was already
running.

I can generate numbers if that helps.

-PWM





\
 
 \ /
  Last update: 2008-02-22 21:39    [W:0.070 / U:0.552 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site