RE: Thread starvation with mutex

"Perez-Gonzalez, Inaky" <[email protected]> Tue, 10 Feb 2004 20:55:10 -0800
Newsgroups gmane.comp.lib.phil
Message-ID <[email protected]>
> From: Jamie Lokier [mailto:[email protected]]
>
> Thread A cannot unlock as long as the userspace word indicates "there
> are waiters".  Therefore it will keep looping calling FUTEX_WAKE It's
> a near-livelock not a deadlock, and will resolve eventually but may
> take a long time.

Ah, ah, ah, ok, I see what you mean. We loop until everything
falls in place together. That's the part that I missed. I was
picturing an O(1) operation for unlocking [kind of a requirement
in which I've been moving too often lately]...

Now, this near-livelock would easily become a livelock if A had 
higher priority than B (either FIFO/RR or the niceness delta greater 
than 10--in the specific case of Linux). This case worries me.

Ok, so to the extent that I am able to think today (not much), 
we have this fully covered in RTNPTL/fulock in serialized mode 
and in the  non-serialized case we'll have to take it into account.

Thanks for your patience

Iñaky Pérez-González -- Not speaking for Intel -- all opinions are my own (and my fault)