vhost-user: return the active Queue from stop_queue

Most of this change involves wrapping the Queue object inside an
Rc<RefCell<>>, Arc<Mutex<>>, or Rc<AsyncMutex<>>.

This is necessary for getting device suspend and resume to work.

Bug=280607608
TEST=presubmits

Change-Id: I7e3680aea2927c1fc9d971f27ebbb09ec308a634
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/4545603
Commit-Queue: Richard Zhang <rizhang@google.com>
Reviewed-by: Noah Gold <nkgold@google.com>
20 files changed
tree: b15400e3abd759079030eb13917513d297742a42
  1. .cargo/
  2. .config/
  3. .devcontainer/
  4. .github/
  5. .vscode/
  6. aarch64/
  7. acpi_tables/
  8. anti_tamper/
  9. arch/
  10. argh_helpers/
  11. audio_util/
  12. base/
  13. bit_field/
  14. broker_ipc/
  15. common/
  16. crash_report/
  17. cros_async/
  18. cros_fdt/
  19. cros_tracing/
  20. cros_tracing_types/
  21. crosvm_cli/
  22. crosvm_control/
  23. crosvm_plugin/
  24. devices/
  25. disk/
  26. docs/
  27. e2e_tests/
  28. fuse/
  29. fuzz/
  30. gpu_display/
  31. hypervisor/
  32. infra/
  33. io_uring/
  34. jail/
  35. kernel_cmdline/
  36. kernel_loader/
  37. kvm/
  38. kvm_sys/
  39. libcras_stub/
  40. linux_input_sys/
  41. logo/
  42. media/
  43. metrics/
  44. net_sys/
  45. net_util/
  46. perfetto/
  47. power_monitor/
  48. prebuilts/
  49. proto_build_tools/
  50. protos/
  51. qcow_utils/
  52. resources/
  53. riscv64/
  54. rutabaga_gfx/
  55. sandbox/
  56. serde_keyvalue/
  57. src/
  58. swap/
  59. system_api/
  60. tests/
  61. third_party/
  62. tools/
  63. tpm2/
  64. tpm2-sys/
  65. tube_transporter/
  66. usb_sys/
  67. usb_util/
  68. vfio_sys/
  69. vhost/
  70. virtio_sys/
  71. vm_control/
  72. vm_memory/
  73. win_audio/
  74. win_util/
  75. x86_64/
  76. .dockerignore
  77. .envrc
  78. .gitignore
  79. .gitmodules
  80. .rustfmt.toml
  81. ARCHITECTURE.md
  82. Cargo.lock
  83. Cargo.toml
  84. CONTRIBUTING.md
  85. DIR_METADATA
  86. LICENSE
  87. mypy.ini
  88. OWNERS
  89. OWNERS_COUNCIL
  90. PRESUBMIT.cfg
  91. pyproject.toml
  92. README.chromeos.md
  93. README.md
  94. rust-toolchain
README.md

crosvm - The ChromeOS Virtual Machine Monitor

crosvm is a virtual machine monitor (VMM) based on Linux’s 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 doesn’t 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