No description
Find a file
Shao-Chuan Lee 105d68747b Revert "rutabaga_gfx: remove fence polling and enable async callback"
This reverts commit a999284da2.

This also introduces two extra `use` statements to fix the corresponding
errors in the LUCI build, which did not occur in local builds.

Reason for revert: caused deadlock in virglrenderer

Original change's description:
> rutabaga_gfx: remove fence polling and enable async callback
>
> Now that rutabaga users can provide a callback for fence
> completion, fences no longer need to be polled on the main thread.
>
> Optional polling still occurs for Rutabaga Components that still
> rely on it for other purposes (e.g. virglrenderer for GL query
> checking).
>
> Also, use a BTreeMap rather a HashMap since we only expect a dozen
> or so entries at most.  In such cases, a BTreeMap is faster.
>
> * v1 (lfrb@collabora.com): remove all polling + add async_cb
> * v2 (ryanneph@google.com): re-introduce optional polling to fix
>       virglrenderer that relies on it for GL query checking.
> * v3 (ryanneph@google.com): replace timer-based polling with
>       eventfd-based poll() signaling for components that want to
>       use it.
>
> BUG=b:175527587
> TEST=glxgears and vkcube in a crosvm guest VM.
>
> Cq-Depend: chromium:3555854, chromium:3563893
> Change-Id: I8e0181317e954cd15e2b8dc04c9b1329b0a6e182
> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/crosvm/+/2860746
> Reviewed-by: Daniel Verkamp <dverkamp@chromium.org>
> Tested-by: kokoro <noreply+kokoro@google.com>
> Commit-Queue: Ryan Neph <ryanneph@google.com>

BUG=b:175527587,b:228782431,b:228521246
TEST=arc.Notification.vm on kukui-arc-r
TEST=dEQP-VK.wsi.android.swapchain.create#image_usage on dedede/kukui-arc-r

Change-Id: I616e3f283a60fe6a260f796cddce67c548b5e304
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/crosvm/+/3584076
Reviewed-by: Kazuhiro Inaba <kinaba@chromium.org>
Reviewed-by: Dennis Kempin <denniskempin@google.com>
Reviewed-by: Ryan Neph <ryanneph@google.com>
Tested-by: kokoro <noreply+kokoro@google.com>
Commit-Queue: Ryan Neph <ryanneph@google.com>
2022-04-13 17:46:41 +00:00
.cargo Run some win64 tests with wine as part of presubmit 2022-04-06 19:45:49 +00:00
.devcontainer Make vscode devcontainer usable 2022-01-25 21:30:49 +00:00
.github Reland "github: Minimize dependencies for document generation" 2022-04-12 22:30:10 +00:00
aarch64 aarch64: fdt: add PSCI compatible string tests 2022-04-07 18:08:55 +00:00
acpi_tables Rust 1.60 clippy fixes 2022-04-11 20:40:36 +00:00
arch Update to gdbstub 0.6.1 2022-04-13 12:52:24 +00:00
base base: fix doc test 2022-04-13 16:42:04 +00:00
bin Deprecate old dev tooling scripts 2021-11-02 22:23:03 +00:00
bit_field crosvm: migrate to Rust 2021 edition 2022-03-09 01:16:03 +00:00
ci/kokoro Run some win64 tests with wine as part of presubmit 2022-04-06 19:45:49 +00:00
common Rust 1.60 clippy fixes 2022-04-11 20:40:36 +00:00
cros_async crosvm: Bump version number. 2022-04-08 01:04:50 +00:00
crosvm-fuzz devices: virtio: convert Interrupt to use IrqLevelEvent 2022-04-06 18:54:41 +00:00
crosvm_control Rust 1.60 clippy fixes 2022-04-11 20:40:36 +00:00
crosvm_plugin Rust 1.60 clippy fixes 2022-04-11 20:40:36 +00:00
devices Revert "rutabaga_gfx: remove fence polling and enable async callback" 2022-04-13 17:46:41 +00:00
disk Rust 1.60 clippy fixes 2022-04-11 20:40:36 +00:00
docs/book book: Add style guide 2022-04-13 13:49:50 +00:00
fuse fuse: disambiguate max_read and max_write 2022-03-17 22:01:02 +00:00
gpu_display Reland "github: Minimize dependencies for document generation" 2022-04-12 22:30:10 +00:00
hypervisor base: accept AsRawDescriptor in PollContext/EpollContext/mmap 2022-04-11 20:27:06 +00:00
infra/config infra: Initial LUCI configuration 2022-02-24 23:21:10 +00:00
integration_tests crosvm: migrate to Rust 2021 edition 2022-03-09 01:16:03 +00:00
io_uring base: accept AsRawDescriptor in PollContext/EpollContext/mmap 2022-04-11 20:27:06 +00:00
kernel_cmdline crosvm: migrate to Rust 2021 edition 2022-03-09 01:16:03 +00:00
kernel_loader Refactoring: Move common/base into base 2022-03-17 00:01:27 +00:00
kvm crosvm: Reflect KVM_EXIT_HYPERV return value. 2022-03-24 18:32:27 +00:00
kvm_sys kvm_sys: regenerate x86 and aarch64 bindings 2022-03-17 22:26:55 +00:00
libcras_stub crosvm: migrate to Rust 2021 edition 2022-03-09 01:16:03 +00:00
linux_input_sys Refactoring: Move common/base into base 2022-03-17 00:01:27 +00:00
logo README: Use PNG logo image 2021-10-29 01:56:23 +00:00
media/libvda Reland "github: Minimize dependencies for document generation" 2022-04-12 22:30:10 +00:00
net_sys net_sys: regenerate bindgen bindings 2022-04-06 19:20:34 +00:00
net_util devices: Upstream Windows vhost-user net device. 2022-04-07 01:19:21 +00:00
power_monitor Reland "github: Minimize dependencies for document generation" 2022-04-12 22:30:10 +00:00
protos crosvm: migrate to Rust 2021 edition 2022-03-09 01:16:03 +00:00
qcow_utils Refactoring: Move common/base into base 2022-03-17 00:01:27 +00:00
resources devices: vvu: virtio-iommu support in virtio-vhost-user 2022-04-08 01:39:22 +00:00
rutabaga_gfx Revert "rutabaga_gfx: remove fence polling and enable async callback" 2022-04-13 17:46:41 +00:00
seccomp seccomp: use common_device.policy in tpm_device.policy 2022-02-23 19:23:31 +00:00
serde_keyvalue add serde_keyvalue crate 2022-03-24 01:33:21 +00:00
src Update to gdbstub 0.6.1 2022-04-13 12:52:24 +00:00
system_api_stub crosvm: migrate to Rust 2021 edition 2022-03-09 01:16:03 +00:00
tests Reland "crosvm: Remove CLOEXEC from fds passed into non-jailed plugin" 2022-04-07 23:12:16 +00:00
third_party Rust 1.60 clippy fixes 2022-04-11 20:40:36 +00:00
tools docs: Generate API docs only for first-party crates 2022-04-12 22:59:34 +00:00
tpm2 crosvm: migrate to Rust 2021 edition 2022-03-09 01:16:03 +00:00
tpm2-sys Reland "github: Minimize dependencies for document generation" 2022-04-12 22:30:10 +00:00
usb_sys Refactoring: Move common/base into base 2022-03-17 00:01:27 +00:00
usb_util Refactoring: Move common/base into base 2022-03-17 00:01:27 +00:00
vfio_sys devices: vvu: virtio-iommu support in virtio-vhost-user 2022-04-08 01:39:22 +00:00
vhost virtio_sys: regenerate bindings 2022-04-11 21:14:01 +00:00
virtio_sys virtio_sys: regenerate bindings 2022-04-11 21:14:01 +00:00
vm_control Update to gdbstub 0.6.1 2022-04-13 12:52:24 +00:00
vm_memory Rust 1.60 clippy fixes 2022-04-11 20:40:36 +00:00
win_util Refactoring: Move win_(sys_)util 2022-03-22 22:23:41 +00:00
x86_64 Update to gdbstub 0.6.1 2022-04-13 12:52:24 +00:00
.dockerignore
.gitignore Add test runner ./tools/run_tests 2021-10-15 22:12:03 +00:00
.gitmodules Switch to submodules based workflow 2021-08-05 18:32:32 +00:00
.rustfmt.toml
ARCHITECTURE.md Move libvda to media/libvda 2022-04-06 01:19:07 +00:00
Cargo.toml Update to gdbstub 0.6.1 2022-04-13 12:52:24 +00:00
CONTRIBUTING.md CONTRIBUTING: Add links to mdbook 2022-02-01 10:39:32 +00:00
LICENSE
navbar.md docs: Use mdformat to format markdown files 2022-01-27 21:29:11 +00:00
OWNERS Add uekawa to OWNERS 2022-03-16 08:01:36 +00:00
README.chromeos.md docs: Use mdformat to format markdown files 2022-01-27 21:29:11 +00:00
README.md docs: Use mdformat to format markdown files 2022-01-27 21:29:11 +00:00
run_tests Deprecate old dev tooling scripts 2021-11-02 22:23:03 +00:00
rust-toolchain Upgrade rust toolchain version to 1.58.1 2022-02-04 02:20:36 +00:00
setup_cros_cargo.sh Deprecate old dev tooling scripts 2021-11-02 22:23:03 +00:00
test_all Deprecate old dev tooling scripts 2021-11-02 22:23:03 +00:00
unblocked_terms.txt unblocked_terms.txt: clean up trivial cases 2021-04-26 20:32:38 +00:00

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

Logo