qemu/util
Emanuele Giuseppe Esposito 7455ff1aa0 aio_wait_kick: add missing memory barrier
It seems that aio_wait_kick always required a memory barrier
or atomic operation in the caller, but nobody actually
took care of doing it.

Let's put the barrier in the function instead, and pair it
with another one in AIO_WAIT_WHILE. Read aio_wait_kick()
comment for further explanation.

Suggested-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Emanuele Giuseppe Esposito <eesposit@redhat.com>
Message-Id: <20220524173054.12651-1-eesposit@redhat.com>
Reviewed-by: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
2022-06-24 17:07:06 +02:00
..
aio-posix.c util/event-loop-base: Introduce options to set the thread pool size 2022-05-09 10:43:23 +01:00
aio-posix.h aio-posix: fix spurious ->poll_ready() callbacks in main loop 2022-03-17 11:23:18 +00:00
aio-wait.c aio_wait_kick: add missing memory barrier 2022-06-24 17:07:06 +02:00
aio-win32.c Remove qemu-common.h include from most units 2022-04-06 14:31:55 +02:00
aiocb.c
async.c replay: notify vCPU when BH is scheduled 2022-06-06 09:26:53 +02:00
atomic64.c osdep: Move memalign-related functions to their own header 2022-03-07 13:16:49 +00:00
base64.c
bitmap.c Replace config-time define HOST_WORDS_BIGENDIAN 2022-04-06 10:50:37 +02:00
bitops.c
block-helpers.c
block-helpers.h
buffer.c
bufferiszero.c cpuid: use unsigned for max cpuid 2022-02-04 09:07:43 -05:00
cacheflush.c util/cacheflush: Optimize flushing when ppc host has coherent icache 2022-06-21 09:28:41 -07:00
compatfd.c util: replace pipe()+cloexec with g_unix_open_pipe() 2022-05-03 15:18:14 +04:00
coroutine-sigaltstack.c Remove qemu-common.h include from most units 2022-04-06 14:31:55 +02:00
coroutine-ucontext.c coroutine-ucontext: use QEMU_DEFINE_STATIC_CO_TLS() 2022-05-04 15:55:23 +02:00
coroutine-win32.c coroutine-win32: use QEMU_DEFINE_STATIC_CO_TLS() 2022-05-04 15:55:23 +02:00
crc32c.c
crc-ccitt.c
cutils.c cutils: add functions for IEC and SI prefixes 2022-06-14 16:50:30 +02:00
dbus.c
drm.c
envlist.c Use g_new() & friends where that makes obvious sense 2022-03-21 15:44:44 +01:00
error-report.c error-report: fix g_date_time_format assertion 2022-04-28 08:51:56 +02:00
error.c
event_notifier-posix.c Replace qemu_pipe() with g_unix_open_pipe() 2022-05-03 15:17:56 +04:00
event_notifier-win32.c Remove qemu-common.h include from most units 2022-04-06 14:31:55 +02:00
fdmon-epoll.c
fdmon-io_uring.c aio-posix: fix build failure io_uring 2.2 2022-03-17 11:23:18 +00:00
fdmon-poll.c
fifo8.c
filemonitor-inotify.c
filemonitor-stub.c
getauxval.c
guest-random.c
hbitmap.c block: simplify handling of try to merge different sized bitmaps 2022-06-24 17:07:06 +02:00
hexdump.c include: move C/util-related declarations to cutils.h 2022-04-06 14:31:43 +02:00
host-utils.c host-utils: Implemented signed 256-by-128 division 2022-06-20 08:38:58 -03:00
id.c
int128.c qemu/int128: addition of div/rem 128-bit operations 2022-01-08 15:46:10 +10:00
iov.c Remove qemu-common.h include from most units 2022-04-06 14:31:55 +02:00
iova-tree.c util: add iova_tree_find_iova 2022-03-15 13:57:44 +08:00
keyval.c include: add qemu/keyval.h 2022-04-21 17:03:51 +04:00
lockcnt.c
log.c util/log: Support per-thread log files 2022-04-20 10:51:11 -07:00
main-loop.c util/event-loop-base: Introduce options to set the thread pool size 2022-05-09 10:43:23 +01:00
memalign.c osdep: Move memalign-related functions to their own header 2022-03-07 13:16:49 +00:00
memfd.c
meson.build util: Merge cacheflush.c and cacheinfo.c 2022-06-21 09:28:41 -07:00
mmap-alloc.c Replace qemu_real_host_page variables with inlined functions 2022-04-06 10:50:38 +02:00
module.c
notify.c
nvdimm-utils.c
osdep.c softmmu: remove deprecated --enable-fips option 2022-04-26 16:12:25 +01:00
oslib-posix.c include: move qemu_*_exec_dir() to cutils 2022-05-28 11:42:56 +02:00
oslib-win32.c util/win32: simplify qemu_get_local_state_dir() 2022-05-28 11:42:56 +02:00
path.c
qdist.c
qemu-co-shared-resource.c
qemu-config.c remove -writeconfig 2022-04-28 08:51:56 +02:00
qemu-coroutine-io.c Remove qemu-common.h include from most units 2022-04-06 14:31:55 +02:00
qemu-coroutine-lock.c coroutine-lock: qemu_co_queue_restart_all is a coroutine-only qemu_co_enter_all 2022-05-12 12:29:44 +02:00
qemu-coroutine-sleep.c
qemu-coroutine.c coroutine: Revert to constant batch size 2022-05-12 12:21:30 +02:00
qemu-option.c qemu-option: Allow deleting opts during qemu_opts_foreach() 2021-10-15 16:11:22 +02:00
qemu-print.c
qemu-progress.c include: move progress API to qemu-progress.h 2022-04-06 14:31:43 +02:00
qemu-sockets.c Remove qemu-common.h include from most units 2022-04-06 14:31:55 +02:00
qemu-thread-common.h
qemu-thread-posix.c thread-posix: optimize qemu_sem_timedwait with zero timeout 2022-04-06 14:31:56 +02:00
qemu-thread-win32.c Remove qemu-common.h include from most units 2022-04-06 14:31:55 +02:00
qemu-timer-common.c
qemu-timer.c qemu-timer: Skip empty timer lists before locking in qemu_clock_deadline_ns_all 2022-06-21 09:24:34 -07:00
qht.c osdep: Move memalign-related functions to their own header 2022-03-07 13:16:49 +00:00
qsp.c
range.c
rcu.c rcu: use coroutine TLS macros 2022-03-04 18:14:40 +01:00
readline.c
selfmap.c
stats64.c
sys_membarrier.c
systemd.c
thread-pool.c thread-pool: remove stopping variable 2022-05-25 21:26:26 +02:00
throttle.c
timed-average.c
trace-events
trace.h
transactions.c transactions: Invoke clean() after everything else 2021-11-16 09:43:44 +01:00
unicode.c
uri.c
userfaultfd.c
uuid.c
vfio-helpers.c Replace qemu_real_host_page variables with inlined functions 2022-04-06 10:50:38 +02:00
vhost-user-server.c util: rename qemu_*block() socket functions 2022-05-03 15:53:20 +04:00
yank.c