qemu-queue: Introduce QLIST_INSERT_HEAD_RCU and dummy RCU wrappers.
authorHarsh Prateek Bora <harsh@linux.vnet.ibm.com>
Tue, 25 Oct 2011 06:40:40 +0000 (12:10 +0530)
committerAneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
Mon, 31 Oct 2011 07:04:18 +0000 (12:34 +0530)
commit5f7d05ecfda56b0b66ade19bc4d81eab46954149
treec722dd31ec42afdebe39560b84232708c7dae312
parent9db221ae73a18e0bd2b1ee6c7dc1904ed06fb464
qemu-queue: Introduce QLIST_INSERT_HEAD_RCU and dummy RCU wrappers.

SynthFS needs a QLIST_INSERT_HEAD_RCU to make sure list instructions are not
re-ordered and therefore avoiding a crash. There may be parallel readers which
should be allowed for lock-free access and this variant allows us to get rid
of rwlocks used by readers.

SynthFS is a special case where we dont really need full RCU capabilities as
it doesnt allow list entry deletion but concurrent readers/writers and
instruction re-ordering should not result in a crash.

Also, once the real rcu is available, dummy rcu macro definitions will go away
and the code will still work as expected.

This patchwork is based on inputs from Paolo Bonzini.

Signed-off-by: Harsh Prateek Bora <harsh@linux.vnet.ibm.com>
Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
qemu-queue.h
qemu-thread.h