These are the minimal changes to adopt RCU and use it in memory_region_find
(and hence in virtio-blk-dataplane).  Looks big, but two thirds of it
is documentation and tests.

Please review! :)

Paolo

Jan Kiszka (1):
  memory: remove assertion on memory_region_destroy

Paolo Bonzini (7):
  tls: require compiler support for __thread
  rcu: add rcu library
  rcu: add rcutorture
  rcu: allow nesting of rcu_read_lock/rcu_read_unlock
  rcu: add call_rcu
  memory: protect current_map by RCU
  memory: avoid ref/unref in memory_region_find

 configure                 |   9 +-
 docs/rcu.txt              | 388 +++++++++++++++++++++++++++++++++++++++
 exec.c                    |   2 +-
 hw/9pfs/virtio-9p-synth.c |   1 +
 include/exec/memory.h     |   5 +
 include/qemu/atomic.h     |  61 +++++++
 include/qemu/queue.h      |  13 ++
 include/qemu/rcu.h        | 155 ++++++++++++++++
 include/qemu/thread.h     |   3 -
 include/qemu/tls.h        |  52 ------
 include/qom/cpu.h         |   4 +-
 memory.c                  |  60 +++----
 tests/Makefile            |  11 +-
 tests/rcutorture.c        | 449 ++++++++++++++++++++++++++++++++++++++++++++++
 tests/test-tls.c          |  83 +++++++++
 util/Makefile.objs        |   1 +
 util/rcu.c                | 290 ++++++++++++++++++++++++++++++
 17 files changed, 1485 insertions(+), 102 deletions(-)
 create mode 100644 docs/rcu.txt
 create mode 100644 include/qemu/rcu.h
 delete mode 100644 include/qemu/tls.h
 create mode 100644 tests/rcutorture.c
 create mode 100644 tests/test-tls.c
 create mode 100644 util/rcu.c

-- 
1.8.3.1


Reply via email to