diff options
author | Emanuele Giuseppe Esposito <eesposit@redhat.com> | 2022-11-11 10:47:56 -0500 |
---|---|---|
committer | Paolo Bonzini <pbonzini@redhat.com> | 2023-01-11 09:59:39 +0100 |
commit | bd688fc93120fb3e28aa70e3dfdf567ccc1e0bc1 (patch) | |
tree | d763c7b30c195a31dedf67d708b7d770fd16b5ef /hw/core/qdev-fw.c | |
parent | b585edca34a817fdb751dfe94fbd3cde32ffe60d (diff) | |
download | qemu-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 'hw/core/qdev-fw.c')
0 files changed, 0 insertions, 0 deletions