qemu/include
Stefan Hajnoczi 9f02cfc84b bitmap: add atomic set functions
Use atomic_or() for atomic bitmaps where several threads may set bits at
the same time.  This avoids the race condition between threads loading
an element, bitwise ORing, and then storing the element.

When setting all bits in a word we can avoid atomic ops and instead just
use an smp_mb() at the end.

Most bitmap users don't need atomicity so introduce new functions.

Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
Message-Id: <1417519399-3166-2-git-send-email-stefanha@redhat.com>
[Avoid barrier in the single word case, use full barrier instead of write.
 - Paolo]
Reviewed-by: Fam Zheng <famz@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2015-06-05 17:10:00 +02:00
..
block qapi: add dirty bitmap status 2015-05-29 12:53:12 +02:00
disas disas: Implement disassembly output for A64 2014-02-08 14:50:48 +00:00
exec memory: do not touch code dirty bitmap unless TCG is enabled 2015-06-05 17:10:00 +02:00
fpu softfloat: expand out STATUS macro 2015-02-06 16:11:38 +00:00
hw pc, acpi, virtio, tpm 2015-06-04 18:33:24 +01:00
libdecnumber Fix new typos in comments (found by codespell) 2014-07-18 17:45:36 +04:00
migration migration: Use an array instead of 3 parameters 2015-05-07 18:31:53 +02:00
monitor monitor: Change return type of monitor_cur_is_qmp() to bool 2015-06-02 10:07:16 +02:00
net net: add MAC address string printer 2015-05-11 14:49:03 +01:00
qapi qobject: Add a special null QObject 2015-05-11 08:59:07 -04:00
qemu bitmap: add atomic set functions 2015-06-05 17:10:00 +02:00
qom exec.c: Capture the memory attributes for a watchpoint hit 2015-04-26 16:49:24 +01:00
standard-headers virtio-input: add linux/input.h 2015-05-29 10:30:06 +02:00
sysemu pc, acpi, virtio, tpm 2015-06-04 18:33:24 +01:00
ui ui/console: remove dpy_gfx_update_dirty 2015-06-05 17:09:59 +02:00
config.h janitor: move remaining public headers to include/ 2012-12-19 08:32:46 +01:00
elf.h linux/elf.h update 2015-05-27 17:52:03 +02:00
glib-compat.h glib: remove stale compat functions 2015-05-22 15:58:06 -04:00
qemu-common.h machine: add default_ram_size to machine class 2015-06-03 23:56:55 +02:00
qemu-io.h qemu-io: Use BlockBackend 2015-02-16 15:07:19 +00:00
qjson.h QJSON: Add JSON writer 2015-02-05 17:16:14 +01:00
trace-tcg.h trace: [tcg] Generate TCG tracing routines 2014-08-12 14:26:12 +01:00
trace.h trace: [tcg] Include event definitions in "trace.h" 2014-08-12 14:26:12 +01:00