[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)
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 |