No description
Find a file
Idan Raiter 1d7627ddbe vhost-user: gpu: Improve queue handling to prevent snapshot errors
Improves the queue handling code to fix these two issues:

1) Dangling references to the queue cause queue recovery to fail.
   To clean this up we just need to call stop_non_queue_workers as these
   workers have a reference to the state.

2) The cursor queue always fails to snapshot since it has no worker and
   no state tracking to recover the queue. Clean up this path by
   spawning an empty worker instead.

BUG=b:300501737
TEST=snapshotted downstream

Change-Id: Ie8e2eeb0eb71090c873d5fb64f22229f60745f4b
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/5247321
Commit-Queue: Idan Raiter <idanr@google.com>
Reviewed-by: Daniel Verkamp <dverkamp@chromium.org>
2024-01-31 20:26:18 +00:00
.cargo clippy: enforce safety block comments 2023-12-14 18:21:54 +00:00
.config dev_container: Pass through NEXTEST_PROFILE 2023-12-14 19:01:30 +00:00
.devcontainer dev_container: Replace better toml extension 2023-07-27 23:37:15 +00:00
.github Cleanup: Remove old, deprecated and no longer used files 2022-09-20 21:05:57 +00:00
.vscode Document feature flags and introduce new feature sets 2022-10-14 20:31:19 +00:00
aarch64 devices: apply new noncoherent attribute for GPU mem's cache info 2024-01-26 23:27:58 +00:00
acpi_tables crosvm: Uprev zerocopy to 0.7.x 2023-10-10 17:34:32 +00:00
arch devices: apply new noncoherent attribute for GPU mem's cache info 2024-01-26 23:27:58 +00:00
argh_helpers Update to syn-2 2023-12-02 00:23:50 +00:00
audio_streams_conformance_test Rename "unix" to "linux" in code and docs 2023-10-11 01:15:07 +00:00
audio_util clippy: enforce safety block comments 2023-12-14 18:21:54 +00:00
base windows: resolve clippy::unnecessary_cast warnings 2024-01-29 19:42:29 +00:00
bit_field Update to syn-2 2023-12-02 00:23:50 +00:00
broker_ipc clippy: enforce safety block comments 2023-12-14 18:21:54 +00:00
common data_model: remove static_assertions dependency 2024-01-03 00:54:44 +00:00
cros_async cros_async: don't use relaxed atomics for executor state 2024-01-30 19:41:00 +00:00
cros_fdt cros_fdt: Do not apply children of filtered nodes 2024-01-22 10:37:57 +00:00
cros_tracing cros_tracing: fix interface drift. 2023-12-02 00:02:41 +00:00
cros_tracing_types clippy: enforce safety block comments 2023-12-14 18:21:54 +00:00
crosvm_cli Fix some cargo doc warnings in Windows-only code 2023-09-22 00:59:46 +00:00
crosvm_control clippy: enforce safety block comments 2023-12-14 18:21:54 +00:00
crosvm_plugin clippy: enforce safety block comments 2023-12-14 18:21:54 +00:00
devices vhost-user: gpu: Improve queue handling to prevent snapshot errors 2024-01-31 20:26:18 +00:00
disk cros_async: move punch hole special case into disk crate 2023-12-15 19:40:13 +00:00
docs/book docs: Fix link to the internal uprev playbook 2024-01-23 18:49:48 +00:00
e2e_tests guest_under_test: Apply virtio-pvclock guest kernel patch for testing 2024-01-29 08:37:47 +00:00
fuse devices: virtio: fs: Make atomic_open use negative dentry 2024-01-18 04:03:49 +00:00
fuzz devices: Add power management to virtio devices 2023-12-14 03:25:11 +00:00
gpu_display clippy: enforce safety block comments 2023-12-14 18:21:54 +00:00
hypervisor Cargo.toml: add noncoherent-dma feature flag 2024-01-26 23:27:58 +00:00
infra Roll recipe dependencies (trivial). 2024-01-30 21:49:46 +00:00
io_uring bindgen: update to Linux 6.6 headers 2024-01-09 00:37:43 +00:00
jail jail: seccomp: Allow mkdir/mkdirat on ARM for mali shader debugging 2024-01-29 18:04:18 +00:00
kernel_cmdline Rust 1.65: Fix clippy derive_partial_eq_without_eq lints 2022-12-01 01:32:30 +00:00
kernel_loader kernel_loader: Reserve memory according to 'image_size' header field 2024-01-31 09:15:04 +00:00
kvm devices: apply new noncoherent attribute for GPU mem's cache info 2024-01-26 23:27:58 +00:00
kvm_sys devices: apply new noncoherent attribute for GPU mem's cache info 2024-01-26 23:27:58 +00:00
libcras_stub devices: snd: Use PCM device client_type and stream_type for CRAS 2023-03-02 06:22:40 +00:00
linux_input_sys linux_input_sys: simplify input event decoders 2024-01-11 02:44:19 +00:00
logo README: Use PNG logo image 2021-10-29 01:56:23 +00:00
media bindgen: regenerate all bindings with bindgen 0.68.1 2024-01-09 00:37:43 +00:00
metrics clippy: enforce safety block comments 2023-12-14 18:21:54 +00:00
net_sys bindgen: update to Linux 6.6 headers 2024-01-09 00:37:43 +00:00
net_util windows: resolve clippy::unnecessary_cast warnings 2024-01-29 19:42:29 +00:00
perfetto cros_tracing: fix interface drift. 2023-12-02 00:02:41 +00:00
power_monitor Cargo.toml: upgrade protobuf 2.x -> 3.x 2023-04-28 19:32:01 +00:00
prebuilts Rename "unix" to "linux" in code and docs 2023-10-11 01:15:07 +00:00
proto_build_tools Cargo.toml: upgrade protobuf 2.x -> 3.x 2023-04-28 19:32:01 +00:00
protos clippy: enforce safety block comments 2023-12-14 18:21:54 +00:00
resources Fix clippy useless_conversion into_iter() warnings 2023-11-06 19:43:56 +00:00
riscv64 Clone host CPU capacity/clusters for --host-cpu-topology 2024-01-12 10:03:55 +00:00
rutabaga_gfx rutabaga_gfx: fix cross-compile on nto 2024-01-30 01:36:25 +00:00
sandbox Add paste handling into the emulator 2023-09-08 21:29:23 +00:00
serde_keyvalue Update to syn-2 2023-12-02 00:23:50 +00:00
src windows: remove unused Vm type in create_userspace_irq_chip 2024-01-29 19:42:29 +00:00
swap base: emit Result from FileDataIterator 2024-01-23 01:23:53 +00:00
system_api Replace #[cfg(unix)] with #[cfg(any(target_os = "android", target_os = "linux"))] 2023-10-11 00:43:29 +00:00
tests clippy: enforce safety block comments 2023-12-14 18:21:54 +00:00
third_party vmm_vhost: fix reply hdr size in FS_MAP tests 2023-12-15 19:39:24 +00:00
tools tools: add simple windows example script 2024-01-27 06:17:57 +00:00
tube_transporter Fix some cargo doc warnings in Windows-only code 2023-09-22 00:59:46 +00:00
usb_sys clippy: enforce safety block comments 2023-12-14 18:21:54 +00:00
usb_util clippy: enforce safety block comments 2023-12-14 18:21:54 +00:00
vendor vm_control: gpu: remove kiwi feature 2023-10-24 23:19:03 +00:00
vfio_sys bindgen: update to Linux 6.6 headers 2024-01-09 00:37:43 +00:00
vhost clippy: enforce safety block comments 2023-12-14 18:21:54 +00:00
virtio_sys bindgen: update to Linux 6.6 headers 2024-01-09 00:37:43 +00:00
vm_control devices: apply new noncoherent attribute for GPU mem's cache info 2024-01-26 23:27:58 +00:00
vm_memory base: emit Result from FileDataIterator 2024-01-23 01:23:53 +00:00
win_audio Run rustfmt on whole codebase with nightly enabled 2023-11-29 18:41:29 +00:00
win_util Run rustfmt on whole codebase with nightly enabled 2023-11-29 18:41:29 +00:00
x86_64 Clone host CPU capacity/clusters for --host-cpu-topology 2024-01-12 10:03:55 +00:00
.dockerignore add docker supported builds and tests 2019-05-15 13:36:19 -07:00
.envrc Automatically register tools/ on PATH 2023-03-03 00:33:15 +00:00
.gitattributes config: force lf as line endings 2023-11-07 17:38:58 +00:00
.gitignore Automatically register tools/ on PATH 2023-03-03 00:33:15 +00:00
.gitmodules devices: remove --software-tpm support 2023-10-02 23:28:45 +00:00
.rustfmt.toml Enable rustfmt nightly in container and CI 2023-11-29 18:41:29 +00:00
ARCHITECTURE.md docs: book: update architecture docs 2023-06-01 22:37:17 +00:00
Cargo.lock Cargo.lock: update to shlex 1.3 2024-01-24 23:11:36 +00:00
Cargo.toml Cargo.toml: add noncoherent-dma feature flag 2024-01-26 23:27:58 +00:00
CONTRIBUTING.md doc: fix broken building_crosvm links 2024-01-08 21:16:45 +00:00
DIR_METADATA DIR_METADATA: Add public buganizer component 2022-09-21 17:43:59 +00:00
LICENSE Update all copyright headers to match new style 2022-09-13 18:41:29 +00:00
mypy.ini Add python configs for consistency between IDE and CI 2022-08-16 18:33:23 +00:00
OWNERS crosvm: add fmayle@ to OWNERS 2023-10-27 18:10:14 +00:00
OWNERS_COUNCIL Require council review for changes to Cargo.lock 2022-12-01 18:50:48 +00:00
PRESUBMIT.cfg Cleanup: Remove old, deprecated and no longer used files 2022-09-20 21:05:57 +00:00
pyproject.toml Add python configs for consistency between IDE and CI 2022-08-16 18:33:23 +00:00
README.chromeos.md crosvm: update book and doc links to crosvm.dev 2022-07-29 22:54:01 +00:00
README.md Fix remaining Chrome/Chromium OS instances 2023-01-03 22:14:30 +00:00
rust-toolchain Upgrade to 1.68.2: Set default version and rebuild container 2023-05-25 18:30:55 +00:00

crosvm - The ChromeOS Virtual Machine Monitor

crosvm is a virtual machine monitor (VMM) based on Linuxs KVM hypervisor, with a focus on simplicity, security, and speed. crosvm is intended to run Linux guests, originally as a security boundary for running native applications on the ChromeOS platform. Compared to QEMU, crosvm doesnt emulate architectures or real hardware, instead concentrating on paravirtualized devices, such as the virtio standard.

crosvm is currently used to run Linux/Android guests on ChromeOS devices.

Logo