Re: [PATCH] sched: correct testing need_resched in mutex_spin_on_owner()

From: Hillf Danton
Date: Tue Jun 07 2011 - 10:47:26 EST


On Tue, Jun 7, 2011 at 10:40 PM, Peter Zijlstra <peterz@xxxxxxxxxxxxx> wrote:
> 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.
>
Oh, it looks you are willing to rethink about testing need_resched?

thanks
Hillf
--
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/