Re: [PATCH] sched: correct testing need_resched inmutex_spin_on_owner()

From: Peter Zijlstra
Date: Tue Jun 07 2011 - 10:40:56 EST


On Tue, 2011-06-07 at 22:36 +0800, Hillf Danton wrote:

> If you are right, the following comment also in __mutex_lock_common()
>
> for (;;) {
> struct task_struct *owner;
>
> /*
> * If there's an owner, wait for it to either
> * release the lock or go to sleep.
> */
> owner = ACCESS_ONCE(lock->owner);
> if (owner && !mutex_spin_on_owner(lock, owner))
> break;
>
> looks misleading too, but if owner is on this CPU, for what does we wait?

huh, wtf!? it cannot be on this cpu, if it was we wouldn't be running
the above code but whatever owner was doing.

So my argument was, it cannot be on this cpu, therefore, by checking it
is on a cpu, we check its on a different cpu.

And I really don't see how any of that is related to the above.
--
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/