Re: [PATCH [RT] 08/14] add a loop counter based timeout mechanism

From: Peter W. Morreale
Date: Fri Feb 22 2008 - 15:36:29 EST


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



--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/