|
|
|
|
|
|
|
|
|
|
xen-devel
Re: [Xen-devel] [xen-unstable test] 6947: regressions - trouble: broken/
On 02/05/2011 17:36, "Dan Magenheimer" <dan.magenheimer@xxxxxxxxxx> wrote:
> I won't claim to understand RCU very well either, but I
> actually explicitly chose a pre-RCU version of the Linux
> radix tree code because tmem (which was the only user of
> the radix tree code at the time IIRC) is write-often
> AND read-often and my understanding of RCU is that it
> works best for read-often-write-infrequently trees.
That is where it gives the best performance boost (because it obviates the
need for read-side locking, with its associated overheads). But there can be
other reasons for using a lock-free synchronisation strategy -- our current
motivation, sync'ing with interrupt handlers (or, similarly, signal handlers
in Unix processes), is another common one.
In terms of the cost of switching to an RCU radix-tree implementation, for
those users that don't need it (i.e., tmem, because you have full lock-based
synchronisation) it looks like node deletions unconditionally wait for an
RCU grace period before freeing the old node. If tmem is doing a reasonable
rate of deletion it might make sense for us to make that optional, selected
when the tree is first initialised. It would be easy enough to add an
'rcu_safe' flag for that purpose. There's also a rcu_head struct added to
every tree node. Not so much we can do about that. It's only 16 bytes,
hopefully not too bad an issue for tmem.
-- Keir
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|
<Prev in Thread] |
Current Thread |
[Next in Thread>
|
- Re: [Xen-devel] [xen-unstable test] 6947: regressions - trouble: broken/fail/pass, (continued)
- Re: [Xen-devel] [xen-unstable test] 6947: regressions - trouble: broken/fail/pass, Keir Fraser
- Re: [Xen-devel] [xen-unstable test] 6947: regressions - trouble: broken/fail/pass, Jan Beulich
- Re: [Xen-devel] [xen-unstable test] 6947: regressions - trouble: broken/fail/pass, Keir Fraser
- Re: [Xen-devel] [xen-unstable test] 6947: regressions - trouble: broken/fail/pass, Keir Fraser
- Re: [Xen-devel] [xen-unstable test] 6947: regressions - trouble: broken/fail/pass, Jan Beulich
- Re: [Xen-devel] [xen-unstable test] 6947: regressions - trouble: broken/fail/pass, Keir Fraser
- RE: [Xen-devel] [xen-unstable test] 6947: regressions - trouble: broken/fail/pass, Dan Magenheimer
- Re: [Xen-devel] [xen-unstable test] 6947: regressions - trouble: broken/fail/pass,
Keir Fraser <=
- Re: [Xen-devel] [xen-unstable test] 6947: regressions - trouble: broken/fail/pass, Jan Beulich
- Re: [Xen-devel] [xen-unstable test] 6947: regressions - trouble: broken/fail/pass, Keir Fraser
- Re: [Xen-devel] [xen-unstable test] 6947: regressions - trouble: broken/fail/pass, Jan Beulich
- Re: [Xen-devel] [xen-unstable test] 6947: regressions - trouble: broken/fail/pass, Keir Fraser
|
|
|
|
|