[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: spinlock requests (was RE: [Xen-devel] [Patch] don't spin with irq disabled)



Thanks Juergen.  Do you know of any GPLv2 code that implements
this improved rwlock solution?  (I don't think Linux does,
does it?)

Dan

> -----Original Message-----
> From: Juergen Gross [mailto:juergen.gross@xxxxxxxxxxxxxxxxxxx]
> Sent: Monday, March 30, 2009 12:12 AM
> To: Dan Magenheimer
> Cc: Keir Fraser; Jan Beulich; xen-devel@xxxxxxxxxxxxxxxxxxx
> Subject: Re: spinlock requests (was RE: [Xen-devel] [Patch] don't spin
> with irq disabled)
> 
> 
> Dan Magenheimer wrote:
> > Keir (and/or others) --
> > 
> > If you are messing around in the spinlock code anyway,
> > I have a couple of requests.  Tmem needs:
> > 
> > rw_is_write_locked(rwlock_t *lock)
> > 
> > and
> > 
> > write_trylock(rwlock_t *lock)
> > 
> > I implemented the latter by grabbing the C code from Linux
> > and it seems to work, but it would be nice if it was
> > consistent with the other lock code in xen and
> > my asm statement understanding is too poor to try.
> > 
> > For rw_is_write_locked(), I had a devil of a time
> > because of what appeared to be a weird code generated
> > race; the obvious simple implementation failed
> > periodically... apparently due to racing against
> > try_readlock attempts!  (I use it in an ASSERT so it
> > was a rather noticeable and spectacular failure!)
> > The workaround I used below is a horrible hack
> > but I haven't had problems since.
> > 
> > Thanks,
> > Dan
> 
> Dan,
> 
> if you are planning to use rw_locks you should be aware that 
> the current
> implementation in Xen is sub-optimal on systems with high 
> processor counts.
> Read locks always succeed when other readers are already 
> holding the lock,
> even if a writer is waiting for the lock. If there are many 
> potential readers
> they might (in theory) lock out a writer for rather long times.
> A better solution would be to stop further readers to acquire 
> the lock if a
> writer is waiting for it.
> 
> Juergen
> 
> -- 
> Juergen Gross                             Principal Developer
> IP SW OS6                      Telephone: +49 (0) 89 636 47950
> Fujitsu Siemens Computers         e-mail: 
> juergen.gross@xxxxxxxxxxxxxxxxxxx
> Otto-Hahn-Ring 6                Internet: www.fujitsu-siemens.com
> D-81739 Muenchen         Company details: 
www.fujitsu-siemens.com/imprint.html

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.