No description
Find a file
Ryan Neph bf6e7d9060 rutabaga_gfx: unmap from gpu thread for virglrenderer
Virglrenderer must not unmap from any thread other than the virtio-gpu
thread because virglrenderer is not thread-safe and EGL requires that
only one thread own a context concurrently.

For the VirglRenderer RutabagaComponent, we can unmap directly from the
virtio-gpu thread. In fact, we can greatly simplify the use of
ExternalMapping if we eliminate the associated map/unmap callbacks for
all RutabagaComponents.

Now VirtioGpu is responsible for ensuring that the map/unmap occurs and
is registered/unregistered. Also, the shared `map_request:
Arc<Mutex<ExternalMapping>>` spanning the KVM and virtio-gpu threads is
no longer necessary.

BUG=b:244626679
TEST=OpenGL and Vulkan gameplay with sandboxing disabled
TEST=OpenGL and Vulkan gameplay on ChromeOS with sandboxing

Change-Id: I4acaf4aabff3891536ca0439221cfbd021dba123
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/3888602
Reviewed-by: Daniel Verkamp <dverkamp@chromium.org>
Commit-Queue: Ryan Neph <ryanneph@google.com>
2022-09-16 17:29:37 +00:00
.cargo health-check: Add check for newline at ends of files 2022-08-18 00:17:04 +00:00
.devcontainer dev_container: Fix vscode integration 2022-09-14 00:16:38 +00:00
.github github: update contributing link 2022-07-29 22:54:01 +00:00
.vscode Add rust-analyzer config to .vscode/settings.json 2022-08-16 23:08:35 +00:00
aarch64 Update all copyright headers to match new style 2022-09-13 18:41:29 +00:00
acpi_tables Update all copyright headers to match new style 2022-09-13 18:41:29 +00:00
anti_tamper Update all copyright headers to match new style 2022-09-13 18:41:29 +00:00
arch Update all copyright headers to match new style 2022-09-13 18:41:29 +00:00
argh_helpers Update all copyright headers to match new style 2022-09-13 18:41:29 +00:00
base rutabaga_gfx: unmap from gpu thread for virglrenderer 2022-09-16 17:29:37 +00:00
bin health-check: enforce blank line after copyright 2022-09-13 22:24:35 +00:00
bit_field Update all copyright headers to match new style 2022-09-13 18:41:29 +00:00
broker_ipc Update all copyright headers to match new style 2022-09-13 18:41:29 +00:00
ci/kokoro health-check: enforce blank line after copyright 2022-09-13 22:24:35 +00:00
common health-check: enforce blank line after copyright 2022-09-13 22:24:35 +00:00
cros_async Update all copyright headers to match new style 2022-09-13 18:41:29 +00:00
crosvm-fuzz Update all copyright headers to match new style 2022-09-13 18:41:29 +00:00
crosvm_control Update all copyright headers to match new style 2022-09-13 18:41:29 +00:00
crosvm_plugin Update all copyright headers to match new style 2022-09-13 18:41:29 +00:00
devices rutabaga_gfx: unmap from gpu thread for virglrenderer 2022-09-16 17:29:37 +00:00
disk Update all copyright headers to match new style 2022-09-13 18:41:29 +00:00
docs/book crosvm: Embed seccomp filters into binary 2022-09-08 21:12:55 +00:00
fuse Update all copyright headers to match new style 2022-09-13 18:41:29 +00:00
gpu_display health-check: enforce blank line after copyright 2022-09-13 22:24:35 +00:00
hypervisor aarch64: Expose MTE to guests 2022-09-13 21:05:15 +00:00
infra Roll recipe dependencies (trivial). 2022-09-15 21:27:28 +00:00
integration_tests health-check: enforce blank line after copyright 2022-09-13 22:24:35 +00:00
io_uring bindgen: update bindings to Linux 5.15 2022-09-14 22:09:30 +00:00
kernel_cmdline Update all copyright headers to match new style 2022-09-13 18:41:29 +00:00
kernel_loader health-check: enforce blank line after copyright 2022-09-13 22:24:35 +00:00
kvm aarch64: Expose MTE to guests 2022-09-13 21:05:15 +00:00
kvm_sys bindgen: update bindings to Linux 5.15 2022-09-14 22:09:30 +00:00
libcras_stub health-check: enforce blank line after copyright 2022-09-13 22:24:35 +00:00
linux_input_sys Update all copyright headers to match new style 2022-09-13 18:41:29 +00:00
logo README: Use PNG logo image 2021-10-29 01:56:23 +00:00
media bindgen: update bindings to Linux 5.15 2022-09-14 22:09:30 +00:00
metrics Update all copyright headers to match new style 2022-09-13 18:41:29 +00:00
net_sys health-check: enforce blank line after copyright 2022-09-13 22:24:35 +00:00
net_util health-check: enforce blank line after copyright 2022-09-13 22:24:35 +00:00
power_monitor Update all copyright headers to match new style 2022-09-13 18:41:29 +00:00
protos Update all copyright headers to match new style 2022-09-13 18:41:29 +00:00
qcow_utils Update all copyright headers to match new style 2022-09-13 18:41:29 +00:00
resources Update all copyright headers to match new style 2022-09-13 18:41:29 +00:00
rutabaga_gfx rutabaga_gfx: unmap from gpu thread for virglrenderer 2022-09-16 17:29:37 +00:00
seccomp dev_container: Upgrade to debian bookworm 2022-09-14 22:32:36 +00:00
serde_keyvalue serde_keyvalue: add documentation about caveats of using flatten 2022-09-15 02:07:56 +00:00
src rutabaga_gfx: unmap from gpu thread for virglrenderer 2022-09-16 17:29:37 +00:00
system_api_stub health-check: enforce blank line after copyright 2022-09-13 22:24:35 +00:00
tests Update all copyright headers to match new style 2022-09-13 18:41:29 +00:00
third_party devices: Implement MasterReqHandler for Windows 2022-09-12 16:09:34 +00:00
tools dev_container: Upgrade to debian bookworm 2022-09-14 22:32:36 +00:00
tpm2 Update all copyright headers to match new style 2022-09-13 18:41:29 +00:00
tpm2-sys Update all copyright headers to match new style 2022-09-13 18:41:29 +00:00
tracing Update all copyright headers to match new style 2022-09-13 18:41:29 +00:00
tube_transporter Update all copyright headers to match new style 2022-09-13 18:41:29 +00:00
usb_sys Update all copyright headers to match new style 2022-09-13 18:41:29 +00:00
usb_util Update all copyright headers to match new style 2022-09-13 18:41:29 +00:00
vfio_sys bindgen: update bindings to Linux 5.15 2022-09-14 22:09:30 +00:00
vhost Update all copyright headers to match new style 2022-09-13 18:41:29 +00:00
virtio_sys bindgen: update bindings to Linux 5.15 2022-09-14 22:09:30 +00:00
vm_control rutabaga_gfx: unmap from gpu thread for virglrenderer 2022-09-16 17:29:37 +00:00
vm_memory vm_memory: create udmabuf stub for Windows. 2022-09-15 19:03:49 +00:00
win_audio Update all copyright headers to match new style 2022-09-13 18:41:29 +00:00
win_util Update all copyright headers to match new style 2022-09-13 18:41:29 +00:00
x86_64 health-check: enforce blank line after copyright 2022-09-13 22:24:35 +00:00
.dockerignore add docker supported builds and tests 2019-05-15 13:36:19 -07:00
.gitignore Add python configs for consistency between IDE and CI 2022-08-16 18:33:23 +00:00
.gitmodules health-check: Add infra checks 2022-08-18 00:17:04 +00:00
.rustfmt.toml rustfmt, win_util: update to 2021 edition 2022-05-31 23:35:02 +00:00
ARCHITECTURE.md arch: allocate reserved PCI addresses first 2022-08-01 18:57:44 +00:00
build.rs Update all copyright headers to match new style 2022-09-13 18:41:29 +00:00
Cargo.lock devices: Implement MasterReqHandler for Windows 2022-09-12 16:09:34 +00:00
Cargo.toml crosvm: unix: install memfd panic hook 2022-09-13 20:01:55 +00:00
CONTRIBUTING.md contributing: fix "uploaad" typo 2022-08-01 23:30:44 +00:00
DIR_METADATA DIR_METADATA: Add ChromeOS CQ HW/VM V2 test plans. 2022-09-14 00:43:05 +00:00
LICENSE Update all copyright headers to match new style 2022-09-13 18:41:29 +00:00
mypy.ini Add python configs for consistency between IDE and CI 2022-08-16 18:33:23 +00:00
navbar.md crosvm: update book and doc links to crosvm.dev 2022-07-29 22:54:01 +00:00
OWNERS Add rizhang@ to OWNERS 2022-08-17 01:14:13 +00:00
PRESUBMIT.cfg Update all copyright headers to match new style 2022-09-13 18:41:29 +00:00
pyproject.toml Add python configs for consistency between IDE and CI 2022-08-16 18:33:23 +00:00
README.chromeos.md crosvm: update book and doc links to crosvm.dev 2022-07-29 22:54:01 +00:00
README.md crosvm: update book and doc links to crosvm.dev 2022-07-29 22:54:01 +00:00
run_tests Update all copyright headers to match new style 2022-09-13 18:41:29 +00:00
rust-toolchain dev_container: Upgrade to debian bookworm 2022-09-14 22:32:36 +00:00
setup_cros_cargo.sh health-check: enforce blank line after copyright 2022-09-13 22:24:35 +00:00
test_all Update all copyright headers to match new style 2022-09-13 18:41:29 +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