No description
Find a file
Alexandre Courbot 88b671a469 devices: gpu: prevent busy polling if resource bridge becomes faulty
If a resource bridge becomes closed for some reason, it will always get
signaled as ready and will make the poll call return immediately, only
to make us handle an error and go back to the same loop indefinitely.
This results in lots of error messages in the host's log and one CPU
core very busy doing nothing.

Fix this by making `process_resource_bridge()` return a `Result` and
removing the faulty bridge when it returns an error.

BUG=b:161774071
TEST=Make the video process exit after establishing the bridge, notice
that the bridge is properly removed on the GPU process side and the
latter does not flood the host's logs with the same error.

Change-Id: I19767d779a44caccf0870faf422c7234c4232818
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/crosvm/+/3310341
Tested-by: kokoro <noreply+kokoro@google.com>
Commit-Queue: Alexandre Courbot <acourbot@chromium.org>
Reviewed-by: Daniel Verkamp <dverkamp@chromium.org>
Reviewed-by: Chirantan Ekbote <chirantan@chromium.org>
Reviewed-by: Keiichi Watanabe <keiichiw@chromium.org>
2021-12-02 10:57:54 +00:00
.cargo cleanup: Fix previously disabled clippy checks 2021-11-12 23:23:48 +00:00
.devcontainer Add new dev container and install-deps scripts 2021-10-15 22:12:02 +00:00
.github github: Don't use 80-char rule in pull_request_template 2021-10-29 16:19:21 +00:00
aarch64 devices:pcie: Add PcieRootPort into hotplug bus 2021-11-19 22:10:08 +00:00
acpi_tables Enable clippy on more workspace crates 2021-11-15 23:55:42 +00:00
arch devices:pcie: Add PcieRootPort into hotplug bus 2021-11-19 22:10:08 +00:00
bin Deprecate old dev tooling scripts 2021-11-02 22:23:03 +00:00
bit_field crosvm: fix needless_borrow clippy warning 2021-08-25 23:02:23 +00:00
ci/kokoro dev_container: Preserve container between calls 2021-11-19 20:09:39 +00:00
common crosvm: Add a note that MemoryMapping does RAII. 2021-11-30 09:24:16 +00:00
crosvm-fuzz Refactoring: Move various general purpose crates to common/ 2021-10-29 22:31:43 +00:00
crosvm_plugin sys_util: Replace unsafe use of iovecs 2021-11-26 14:28:28 +00:00
devices devices: gpu: prevent busy polling if resource bridge becomes faulty 2021-12-02 10:57:54 +00:00
disk Handle qcow image backed by a composite disk 2021-11-11 11:08:48 +00:00
docs/book ./tools/presubmit: Parallel execution and use dev container 2021-11-19 20:09:40 +00:00
fuse fuse: Set max_pages in InitOut 2021-11-25 03:56:08 +00:00
gpu_display cleanup: Fix previously disabled clippy checks 2021-11-12 23:23:48 +00:00
hypervisor Enable clippy on more workspace crates 2021-11-15 23:55:42 +00:00
integration_tests Enable clippy on more workspace crates 2021-11-15 23:55:42 +00:00
kernel_cmdline kernel_cmdline: convert to ThisError and sort 2021-09-02 21:00:23 +00:00
kernel_loader Enable clippy on more workspace crates 2021-11-15 23:55:42 +00:00
kvm aarch64: Provide the maximum supported IPA size as the machine type 2021-11-01 14:24:27 +00:00
kvm_sys Refactoring: Move various general purpose crates to common/ 2021-10-29 22:31:43 +00:00
libcras_stub Integrate audio_streams into crosvm, add stub libcras implementation 2021-07-29 05:59:42 +00:00
libcrosvm_control Enable clippy on more workspace crates 2021-11-15 23:55:42 +00:00
libvda enumn: switch to upstream crates.io version 2021-11-15 21:03:25 +00:00
linux_input_sys Refactoring: Move various general purpose crates to common/ 2021-10-29 22:31:43 +00:00
logo README: Use PNG logo image 2021-10-29 01:56:23 +00:00
net_sys Refactoring: Move various general purpose crates to common/ 2021-10-29 22:31:43 +00:00
net_util Refactoring: Move various general purpose crates to common/ 2021-10-29 22:31:43 +00:00
power_monitor Refactoring: Move various general purpose crates to common/ 2021-10-29 22:31:43 +00:00
protos Remove trunks proto from crosvm build 2021-07-31 03:01:21 +00:00
qcow_utils Enable clippy on more workspace crates 2021-11-15 23:55:42 +00:00
resources resources: Release pci slot when vfio pci device is removed 2021-11-19 22:10:15 +00:00
rutabaga_gfx devices: gpu: update protocols 2021-12-01 19:34:00 +00:00
seccomp seccomp: Allow lseek on cras_audio_device 2021-11-29 23:28:45 +00:00
src virtio: video: make libvda a selectable feature 2021-12-02 02:19:34 +00:00
system_api_stub system_api_stub: use 2018 edition of Rust 2021-09-09 06:42:46 +00:00
tests tests/plugins: replace rand_ish use with a counter 2021-07-21 23:28:27 +00:00
third_party vhost_user: Expose members to be used by crosvm VVU proxy device 2021-12-02 05:52:11 +00:00
tools tools: clippy: Enable --all-features 2021-11-25 03:15:49 +00:00
tpm2 crosvm: add license blurb to all files 2019-04-24 15:51:38 -07:00
tpm2-sys Uprev all submodules 2021-10-19 19:12:53 +00:00
usb_sys Refactoring: Move various general purpose crates to common/ 2021-10-29 22:31:43 +00:00
usb_util Enable clippy on more workspace crates 2021-11-15 23:55:42 +00:00
vfio_sys Refactoring: Move various general purpose crates to common/ 2021-10-29 22:31:43 +00:00
vhost devices: vhost: Allow vhost-vsock fd from command-line 2021-11-18 15:19:29 +00:00
virtio_sys Refactoring: Move various general purpose crates to common/ 2021-10-29 22:31:43 +00:00
vm_control devices:vfio-pci: Handle vfio pci device bar reallocation 2021-11-19 22:10:09 +00:00
vm_memory vm_memory: Allow File-backing MemoryRegion 2021-11-18 08:45:19 +00:00
x86_64 devices:pcie: Add PcieRootPort into hotplug bus 2021-11-19 22:10:08 +00:00
.dockerignore add docker supported builds and tests 2019-05-15 13:36:19 -07:00
.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 rustfmt.toml: Use 2018 edition 2021-02-10 11:54:06 +00:00
ARCHITECTURE.md crosvm: Add a note that MemoryMapping does RAII. 2021-11-30 09:24:16 +00:00
Cargo.toml virtio: video: make libvda a selectable feature 2021-12-02 02:19:34 +00:00
CONTRIBUTING.md crosvm: Add link to the chromeos-base/crosvm topic. 2021-11-30 09:23:55 +00:00
LICENSE add LICENSE and README 2017-04-17 14:06:21 -07:00
navbar.md navbar: Update navbar contents 2021-10-29 01:56:24 +00:00
OWNERS OWNERS: Remove tjeznach 2021-10-26 16:58:37 +00:00
README.md crosvm: Sprinkle notes on API search. 2021-11-08 07:21:20 +00:00
run_tests Deprecate old dev tooling scripts 2021-11-02 22:23:03 +00:00
rust-toolchain Uprev to rust 1.55.0 2021-10-19 19:12:52 +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