Re: [RFC] Avoid mutex starvation when optimistic spinning is disabled

From: Imre Deak
Date: Fri Jul 22 2016 - 14:30:01 EST


On Fri, 2016-07-22 at 11:03 -0700, Davidlohr Bueso wrote:
> On Fri, 22 Jul 2016, Waiman Long wrote:
>
> > I think making mutex_trylock() fail maybe a bit too far. Do we
> > really
> > have any real workload that cause starvation problemÂÂbecause of
> > that.
> > Code that does mutex_trylock() in a loop can certainly cause lock
> > starvation, but it is not how mutex_trylock() is supposed to be
> > used.
> > We can't build in safeguard for all the possible abuses of the
> > mutex
> > APIs.
>
> True, and that's actually why I think that 'fixing' the
> !SPIN_ON_OWNER case
> is a bit too far in the first place: most of the archs that will care
> about
> this already have ARCH_SUPPORTS_ATOMIC_RMW. The extra code for
> dealing with
> this is not worth it imo.

SPIN_ON_OWNER is also disabled in case of DEBUG_MUTEXES, which is the
config where I wanted to avoid starvation in the first place.

--Imre