>>It appears that if this function is called with a wait value of zero,
>>all of the waiting processes will be woken up before the scheduler gets
>>called. This means that the scheduler ends up picking which process
>>runs rather than the locking code.
> Right. That's why I asked whether you were doing something clever with
> scheduling ;-)
Ah, okay.
>>Looking through the file, there is no call chain on an unlock or on
>>closing the last locked fd which can give a nonzero wait value, meaning
>>that we will always end up with the scheduler making the decision in
>>these cases.
> I'm impressed that you chased it through ;-)
I was bored and it was bothering me.... :)
>>Am I missing something?
> Nope, it's true. But the tasks get marked as runnable in the right order,
> so the scheduler should be doing the right thing -- if any tasks really
> have a better reason to run first (whether it's through RT scheduling
> or through standard Unix priority scheduling) then they'll get the lock
> first. Otherwise, I'd've thought it should be first-runnable, first-run.
Apparently not always. I guess it's probably good enough for my
purposes the way it is, it just surprised me a bit.
Is 2.5 the same way? (Haven't looked at it yet.)
Chris
-- Chris Friesen | MailStop: 043/33/F10 Nortel Networks | work: (613) 765-0557 3500 Carling Avenue | fax: (613) 765-2986 Nepean, ON K2H 8E9 Canada | email: cfriesen@nortelnetworks.com- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/