From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jeremy Fitzhardinge Subject: Re: spinlock requests (was RE: [Patch] don't spin with irq disabled) Date: Tue, 31 Mar 2009 12:00:39 -0700 Message-ID: <49D26857.3010508@goop.org> References: Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: Keir Fraser Cc: Dan Magenheimer , Juergen Gross , "xen-devel@lists.xensource.com" List-Id: xen-devel@lists.xenproject.org Keir Fraser wrote: > On 31/03/2009 14:40, "Juergen Gross" > wrote: > > >> Dan Magenheimer wrote: >> >>> Thanks Juergen. Do you know of any GPLv2 code that implements >>> this improved rwlock solution? (I don't think Linux does, >>> does it?) >>> >> Good question. >> I just looked into the Linux code and decided not to analyse it. :-) >> I have implemented a solution for our BS2000 system on Xen. It is just >> a rather simple state machine using the cmpxchg instruction for the >> update of the (structured) lock word. >> If there is common interest for this solution I could prepare a patch. >> > > If we care that much about fairness we should use ticket- or queue-based > locks. I don't believe any of our locks are contended enough to be a > concern. If they were, that would be a concern in itself. > Writer vs reader fairness in rwlocks is different from normal spinlock fairness. One presumes that you're expecting to get multiple readers if you choose to use a rwlock, but that can end up excluding writers for an unbounded amount of time. There was a big discussion of this on lkml about 6-9 months ago, because people were seeing writers held off for long periods of time. I think the kernel's rwlock now blocks new readers if a writer if waiting for the lock. J