[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
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |