[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 0/3] rcu: add option to use upstream liburcu
From: |
Emilio G. Cota |
Subject: |
[Qemu-devel] [PATCH 0/3] rcu: add option to use upstream liburcu |
Date: |
Tue, 3 Feb 2015 17:08:16 -0500 |
Hi Paolo + all,
First off, thanks for your ongoing RCU work, which I'm closely
following.
As you stated in the initial RCU patch (7911747b), the intent
is to keep the same API as liburcu's. I checked whether this
was the case and found a couple of issues that I'm addressing
in the appended series.
* The first two patches bring back the RCU API to exactly
match that of liburcu.
* The third patch adds a configure flag to choose from either
liburcu or QEMU's RCU.
Apart from this, I wonder what to do about other valuable bits in
liburcu, particularly in liburcu-cds, which I'm using currently
off-tree. I see three ways of eventually doing this:
a) Add Windows support in liburcu, thereby eliminating the
de facto fork in QEMU.
b) Bring (fork) liburcu-cds to QEMU, just like liburcu-mb was.
c) Add a compile-time flag (say CONFIG_LIBURCU_CDS), and then only
use data structures from liburcu-cds where appropriate, falling
back to traditional locked structures when !CONFIG_LIBURCU_CDS.
Currently I'm using c) because I cannot do either a) and b)--I
don't know anything about Windows and have no need for it.
Would c) be acceptable for upstream, provided the gains (say in
scalability/memory footprint) are significant?
Thanks,
Emilio
- [Qemu-devel] [PATCH 0/3] rcu: add option to use upstream liburcu,
Emilio G. Cota <=
- [Qemu-devel] [PATCH 3/3] rcu: add liburcu knob to configure script, Emilio G. Cota, 2015/02/03
- [Qemu-devel] [PATCH 1/3] rcu: use call_rcu semantics from liburcu, Emilio G. Cota, 2015/02/03
- [Qemu-devel] [PATCH 2/3] rcu: use rcu_{dereference, assign_pointer} instead of atomic_rcu_{read, set}, Emilio G. Cota, 2015/02/03
- Re: [Qemu-devel] [PATCH 0/3] rcu: add option to use upstream liburcu, Paolo Bonzini, 2015/02/04