|
|
|
|
|
|
|
|
|
|
xen-devel
RE: spinlock requests (was RE: [Xen-devel] [Patch] don't spin with irq d
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
|
|
|
|
|