lkml.org 
[lkml]   [2016]   [Mar]   [31]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH v3 2/3] locking/mutex: Enable optimistic spinning of woken task in wait queue
On 03/29/2016 12:42 PM, Peter Zijlstra wrote:
> On Tue, Mar 29, 2016 at 05:39:35PM +0200, Peter Zijlstra wrote:
>> On Tue, Mar 22, 2016 at 01:46:43PM -0400, Waiman Long wrote:
>>> Ding Tianhong reported a live-lock situation where a constant stream
>>> of incoming optimistic spinners blocked a task in the wait list from
>>> getting the mutex.
>>>
>>> This patch attempts to fix this live-lock condition by enabling the
>>> woken task in the wait queue to enter into an optimistic spinning
>>> loop itself in parallel with the regular spinners in the OSQ. This
>>> should prevent the live-lock condition from happening.
>> I would very much like a few words on how fairness is preserved.
>>
>> Because while the waiter remains on the wait_list while it spins, and
>> therefore unlock()s will only wake it, and we'll only contend with the
>> one waiter, the fact that we have two spinners is not fair or starvation
>> proof at all.
> Alternatively, we can say this is good enough until proven deficient,
> but then we should still very much document this.

Yes, we can certainly do that.

Cheers,
Longman

\
 
 \ /
  Last update: 2016-03-31 23:01    [W:0.054 / U:0.556 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site