aboutsummaryrefslogtreecommitdiff
path: root/util
diff options
context:
space:
mode:
authorEmanuele Giuseppe Esposito <eesposit@redhat.com>2022-11-11 10:47:56 -0500
committerPaolo Bonzini <pbonzini@redhat.com>2023-01-11 09:59:39 +0100
commitbd688fc93120fb3e28aa70e3dfdf567ccc1e0bc1 (patch)
treed763c7b30c195a31dedf67d708b7d770fd16b5ef /util
parentb585edca34a817fdb751dfe94fbd3cde32ffe60d (diff)
downloadqemu-bd688fc93120fb3e28aa70e3dfdf567ccc1e0bc1.zip
qemu-bd688fc93120fb3e28aa70e3dfdf567ccc1e0bc1.tar.gz
qemu-bd688fc93120fb3e28aa70e3dfdf567ccc1e0bc1.tar.bz2
accel: introduce accelerator blocker API
This API allows the accelerators to prevent vcpus from issuing new ioctls while execting a critical section marked with the accel_ioctl_inhibit_begin/end functions. Note that all functions submitting ioctls must mark where the ioctl is being called with accel_{cpu_}ioctl_begin/end(). This API requires the caller to always hold the BQL. API documentation is in sysemu/accel-blocker.h Internally, it uses a QemuLockCnt together with a per-CPU QemuLockCnt (to minimize cache line bouncing) to keep avoid that new ioctls run when the critical section starts, and a QemuEvent to wait that all running ioctls finish. Signed-off-by: Emanuele Giuseppe Esposito <eesposit@redhat.com> Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org> Message-Id: <20221111154758.1372674-2-eesposit@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Diffstat (limited to 'util')
-rw-r--r--util/meson.build2
1 files changed, 1 insertions, 1 deletions
diff --git a/util/meson.build b/util/meson.build
index d8d109f..26c73e5 100644
--- a/util/meson.build
+++ b/util/meson.build
@@ -58,6 +58,7 @@ util_ss.add(files('yank.c'))
util_ss.add(files('int128.c'))
util_ss.add(files('memalign.c'))
util_ss.add(files('interval-tree.c'))
+util_ss.add(files('lockcnt.c'))
if have_user
util_ss.add(files('selfmap.c'))
@@ -72,7 +73,6 @@ endif
if have_block or have_ga
util_ss.add(files('aiocb.c', 'async.c'))
util_ss.add(files('base64.c'))
- util_ss.add(files('lockcnt.c'))
util_ss.add(files('main-loop.c'))
util_ss.add(files('qemu-coroutine.c', 'qemu-coroutine-lock.c', 'qemu-coroutine-io.c'))
util_ss.add(files('coroutine-@0@.c'.format(config_host['CONFIG_COROUTINE_BACKEND'])))