No description
Find a file
Vineeth Pillai 81b5e616d6 crosvm: vm_events: consolidate vm events into one framework.
crosvm waits on events like exit, reset, crash, guest panic etc and
uses eventfd to wait on these events. As of now, we have 4 eventfds
and may increase.

This is an attempt to consolidate all Vm events into one framework.
Use Tube instead of Event to get consistent behavior between OSes.
Implement a wrapper over Tube to have a consistent API for events.

BUG=None.
TEST=Built crosvm. Ran a minimal vm to panic and verified that crosvm
received the panic event. cargo test on devices.

Change-Id: I313d428de5e3ce3b879982f913918ec0a4a72c35
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/crosvm/+/3480577
Tested-by: kokoro <noreply+kokoro@google.com>
Reviewed-by: Daniel Verkamp <dverkamp@chromium.org>
Commit-Queue: Vineeth Pillai <vineethrp@google.com>
Reviewed-by: Noah Gold <nkgold@google.com>
2022-05-20 18:04:21 +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 crosvm: vm_events: consolidate vm events into one framework. 2022-05-20 18:04:21 +00:00
acpi_tables doc: add a top-level comment to all crates 2022-05-06 20:46:57 +00:00
arch crosvm: vm_events: consolidate vm events into one framework. 2022-05-20 18:04:21 +00:00
base crosvm: vm_events: consolidate vm events into one framework. 2022-05-20 18:04:21 +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 build-chromeos.sh: Clean up cros repo after build 2022-04-28 18:01:47 +00:00
common crosvm: remove balloon stats request timeout 2022-05-19 23:34:28 +00:00
cros_async crosvm: cros_async: disable unstable test 2022-05-19 23:34:28 +00:00
crosvm-fuzz devices: virtio: convert Interrupt to use IrqLevelEvent 2022-04-06 18:54:41 +00:00
crosvm_control crosvm_control: Add make_rt API 2022-05-10 01:29:17 +00:00
crosvm_plugin Rust 1.60 clippy fixes 2022-04-11 20:40:36 +00:00
devices crosvm: vm_events: consolidate vm events into one framework. 2022-05-20 18:04:21 +00:00
disk disk: upstream windows support 2022-05-19 18:25:30 +00:00
docs/book Move PVTIME down below MMIO_BASE. 2022-05-06 13:01:31 +00:00
fuse doc: add a top-level comment to all crates 2022-05-06 20:46:57 +00:00
gpu_display Reland "github: Minimize dependencies for document generation" 2022-04-12 22:30:10 +00:00
hypervisor hypervisor: Switch inflate/deflate functions 2022-05-20 00:15:25 +00:00
infra [luci] turn off builders in Luci temporarily 2022-05-09 22:17:41 +00:00
integration_tests crosvm: migrate to Rust 2021 edition 2022-03-09 01:16:03 +00:00
io_uring doc: add a top-level comment to all crates 2022-05-06 20:46:57 +00:00
kernel_cmdline crosvm: migrate to Rust 2021 edition 2022-03-09 01:16:03 +00:00
kernel_loader doc: add a top-level comment to all crates 2022-05-06 20:46:57 +00:00
kvm doc: add a top-level comment to all crates 2022-05-06 20:46:57 +00:00
kvm_sys doc: add a top-level comment to all crates 2022-05-06 20:46:57 +00:00
libcras_stub crosvm: migrate to Rust 2021 edition 2022-03-09 01:16:03 +00:00
linux_input_sys doc: add a top-level comment to all crates 2022-05-06 20:46:57 +00:00
logo README: Use PNG logo image 2021-10-29 01:56:23 +00:00
media/libvda doc: add a top-level comment to all crates 2022-05-06 20:46:57 +00:00
net_sys doc: add a top-level comment to all crates 2022-05-06 20:46:57 +00:00
net_util doc: add a top-level comment to all crates 2022-05-06 20:46:57 +00:00
power_monitor doc: add a top-level comment to all crates 2022-05-06 20:46:57 +00:00
protos doc: add a top-level comment to all crates 2022-05-06 20:46:57 +00:00
qcow_utils doc: add a top-level comment to all crates 2022-05-06 20:46:57 +00:00
resources x86_64: Add parameter to speicify pcie cfg mmio base and size 2022-05-13 00:19:52 +00:00
rutabaga_gfx rutabaga_gfx: stop unconditionally advertising the cross domain capset 2022-05-19 22:39:47 +00:00
seccomp seccomp: Add io_uring_setup / io_uring_enter to gpu_common.policy 2022-05-06 22:09:01 +00:00
serde_keyvalue add serde_keyvalue crate 2022-03-24 01:33:21 +00:00
src crosvm: vm_events: consolidate vm events into one framework. 2022-05-20 18:04:21 +00:00
system_api_stub crosvm: migrate to Rust 2021 edition 2022-03-09 01:16:03 +00:00
tests net_util: refactor unix for cross platforming. 2022-04-22 01:37:58 +00:00
third_party third_party/minijail: update to latest 2022-05-06 23:09:20 +00:00
tools Add check_cq_depend to PRESUBMIT 2022-05-18 18:54:34 +00:00
tpm2 doc: add a top-level comment to all crates 2022-05-06 20:46:57 +00:00
tpm2-sys doc: add a top-level comment to all crates 2022-05-06 20:46:57 +00:00
tube_transporter tube_transporter: Upstream this Window's specific crate 2022-04-20 01:24:35 +00:00
usb_sys doc: add a top-level comment to all crates 2022-05-06 20:46:57 +00:00
usb_util doc: add a top-level comment to all crates 2022-05-06 20:46:57 +00:00
vfio_sys Revert "direct_irq: Add support for host wakeup capable IRQs" 2022-05-19 14:28:46 +00:00
vhost virtio-sys: add virtio_config and clean up imports 2022-05-09 21:20:27 +00:00
virtio_sys virtio: create a DeviceType wrapper enum 2022-05-10 21:00:07 +00:00
vm_control crosvm: remove balloon stats request timeout 2022-05-19 23:34:28 +00:00
vm_memory vm_memory: upstream Windows support 2022-05-20 04:24:43 +00:00
win_util Refactoring: Move win_(sys_)util 2022-03-22 22:23:41 +00:00
x86_64 crosvm: vm_events: consolidate vm events into one framework. 2022-05-20 18:04:21 +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 Document memory layout. 2022-05-06 12:09:40 +00:00
Cargo.toml Revert "metrics: Add metrics crate." 2022-05-12 16:31:51 +00:00
CONTRIBUTING.md Add documentation for ChromeOS workflows 2022-04-18 19:05:49 +00:00
LICENSE add LICENSE and README 2017-04-17 14:06:21 -07:00
navbar.md docs: Use mdformat to format markdown files 2022-01-27 21:29:11 +00:00
OWNERS Add recipe-mega-autoroller to OWNERS 2022-04-28 21:57:30 +00:00
PRESUBMIT.cfg Add check_cq_depend to PRESUBMIT 2022-05-18 18:54:34 +00:00
README.chromeos.md Add documentation for ChromeOS workflows 2022-04-18 19:05:49 +00:00
README.md README: Update link to contributor guide 2022-05-11 13:21:04 +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