io_uring: refactor prep_next_sqe to remove an argument no longer used

uring::SubmitQueue has pre-allocated io_vecs field inside it, and
prep_next_sqe provides a caller with an io_vec so that the caller
doesn't have to allocate an io_vec by itself. This used to be used by
add_rw_op before. However, no caller uses this given io_vec, but they
allocate io_vec by themselves.

This change removes io_vecs from the arguments of prep_next_sqe, and
refactor SubmitQueue structure to make it simpler.

BUG=None
TEST=cargo test -p io_uring. A vm launches by crosvm run
--async-executor uring...

Change-Id: I07bb2f496d3a2e4ca038a4dd861dd80b87ba41ef
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/4546822
Commit-Queue: Takaya Saeki <takayas@chromium.org>
Reviewed-by: Daniel Verkamp <dverkamp@chromium.org>
1 file changed
tree: aa0b409f17f87424d0c6697afaf57cf65aaf9e27
  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