Sorry for the late reply.

The presence of the unfair option as default is largely due to fixing the 
recursive read lock in interrupt handler problem. You are right that it is no 
longer a valid reason now. 

An unfair lock may have a better performance characteristics, especially for a 
highly contended lock. Other than that, I have no other reason to keep an 
unfair option. I don't mind taking out the unfair option and make the fair 
qrwlock the default. It does simplify the code. I will send out an updated 
patchset with only the fair qrwlock.

Thank for suggestion.
-Longman

-----Original Message-----
From: linus...@gmail.com [mailto:linus...@gmail.com] On Behalf Of Linus Torvalds
Sent: Monday, November 18, 2013 1:12 PM
To: Long, Wai Man
Cc: Thomas Gleixner; Ingo Molnar; H. Peter Anvin; Arnd Bergmann; 
linux-a...@vger.kernel.org; the arch/x86 maintainers; Linux Kernel Mailing 
List; Peter Zijlstra; Steven Rostedt; Andrew Morton; Michel Lespinasse; Andi 
Kleen; Rik van Riel; Paul E. McKenney; Raghavendra K T; George Spelvin; Tim 
Chen; Chandramouleeswaran, Aswin; Norton, Scott J
Subject: Re: [PATCH v6 3/5] qrwlock: Enable fair queue read/write lock

On Tue, Nov 12, 2013 at 6:48 AM, Waiman Long <waiman.l...@hp.com> wrote:
> By default, queue rwlock is fair among writers and gives preference to 
> readers allowing them to steal lock even if a writer is waiting. 
> However, there is a desire to have a fair variant of rwlock that is 
> more deterministic. To enable this [..]

Is there really any point in having the option for unfair at all?

From your timings, it looks like the unfair locks are more expensive for the 
writer side, but since pretty much the whole point of rwlocks is when readers 
are the common case, I don't think we care.

And I'm not at all convinced we want the complexity of two different kinds of 
rwlocks with different semantics and extra code for said semantics..

Your *original* fair rwlocks were unusable, since they didn't allow for the irq 
semantics that most users need, but afaik your current version always makes an 
irq/bh-context reader work even when the lock is otherwise trying to be fair, 
so this whole dual behavior seems to be largely pointless.

No?

                        Linus
N�����r��y����b�X��ǧv�^�)޺{.n�+����{����zX����ܨ}���Ơz�&j:+v�������zZ+��+zf���h���~����i���z��w���?�����&�)ߢf��^jǫy�m��@A�a���
0��h���i

Reply via email to