balloon: Improve optional queue handling

Make status queue properly optional. As part of this, refactor how the
optional event queue is handled, to prevent exponential growth in the
number of select statements needed to handle optional queues.

BUG=None
TEST=ARCVM boots and balloon works

Change-Id: I55d59875b7e0223a57f1c8c5d0e0d8a4a6b9a26c
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/3779083
Tested-by: David Stevens <stevensd@chromium.org>
Reviewed-by: Daniel Verkamp <dverkamp@chromium.org>
Commit-Queue: David Stevens <stevensd@chromium.org>
1 file changed
tree: 87b068e0039507251a83bf254c9e7e847be6fa34
  1. .cargo/
  2. .devcontainer/
  3. .github/
  4. aarch64/
  5. acpi_tables/
  6. anti_tamper/
  7. arch/
  8. argh_helpers/
  9. base/
  10. bin/
  11. bit_field/
  12. broker_ipc/
  13. ci/
  14. common/
  15. cros_async/
  16. crosvm-fuzz/
  17. crosvm_control/
  18. crosvm_plugin/
  19. devices/
  20. disk/
  21. docs/
  22. fuse/
  23. gpu_display/
  24. hypervisor/
  25. infra/
  26. integration_tests/
  27. io_uring/
  28. kernel_cmdline/
  29. kernel_loader/
  30. kvm/
  31. kvm_sys/
  32. libcras_stub/
  33. linux_input_sys/
  34. logo/
  35. media/
  36. metrics/
  37. net_sys/
  38. net_util/
  39. power_monitor/
  40. protos/
  41. qcow_utils/
  42. resources/
  43. rutabaga_gfx/
  44. seccomp/
  45. serde_keyvalue/
  46. src/
  47. system_api_stub/
  48. tests/
  49. third_party/
  50. tools/
  51. tpm2/
  52. tpm2-sys/
  53. tracing/
  54. tube_transporter/
  55. usb_sys/
  56. usb_util/
  57. vfio_sys/
  58. vhost/
  59. virtio_sys/
  60. vm_control/
  61. vm_memory/
  62. win_audio/
  63. win_util/
  64. x86_64/
  65. .dockerignore
  66. .gitignore
  67. .gitmodules
  68. .rustfmt.toml
  69. ARCHITECTURE.md
  70. Cargo.toml
  71. CONTRIBUTING.md
  72. LICENSE
  73. navbar.md
  74. OWNERS
  75. PRESUBMIT.cfg
  76. README.chromeos.md
  77. README.md
  78. run_tests
  79. rust-toolchain
  80. setup_cros_cargo.sh
  81. test_all
  82. unblocked_terms.txt
README.md

crosvm - The Chrome OS 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 Chrome OS 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 Chrome OS devices.

Logo