On Tue, 2011-01-04 at 10:15 -0700, Peter W. Morreale wrote:
No need to be quiet ;-)
I'm working on making it spin in TASK_RUNNING state if possible, but it
is making the code a bit more complex, as it seems that there is an
assumption with the wakeup and the changing of the current->state in the
rt_spin_lock_slowlock code all being under the lock->wait_lock. I think
I'll scrap this idea.
That said, I think your wakeup patch may be worth while with Lai's new
code. His changes causes the owner to wake up the pending owner several
times, because the pending owner is never removed from the lock
wait_list. If a high prio task grabs and releases the same lock over and
over, if there is a waiter it will try to wake up that waiter each time.
Thus, having your patch may prevent that unnecessary wakeup.
I'll look more into it. Thanks!
-- Steve
--