No description
Find a file
Dmytro Maluka ab50403924 acpi: event listener: ignore events for direct GPEs
Ignore ACPI netlink events for GPEs which are configured as direct
GPEs. Such GPEs are forwarded to the guest directly as physical GPEs
using eventfd based forwarding of physical SCI interrupts (which
ensures that the GPE handling in the guest is synchronized with SCI
interrupt context in the host).
Forwarding via netlink should be used for emulated GPEs only.

With this change, we are still propagating all GPE events received by
the host to the guest. In the future we may need to enhance this logic,
since for some types of GPEs we may not want to inject them to the
guest at all, e.g. for Thunderbolt hotplug GPE we want to receive it
in crosvm and then inject a normal PCI hotplug interrupt instead.

BUG=b:197247746, b:205072342
TEST=Make sure that GPE marked as direct are ignored

Change-Id: Id5b05a99951455f52dcb375289cb10d040e8ff7f
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/crosvm/+/3492225
Reviewed-by: Daniel Verkamp <dverkamp@chromium.org>
Tested-by: kokoro <noreply+kokoro@google.com>
Commit-Queue: Tomasz Nowicki <tnowicki@google.com>
2022-03-21 09:16:43 +00:00
.cargo clippy: fix devices crate 2022-02-07 22:22:39 +00:00
.devcontainer Make vscode devcontainer usable 2022-01-25 21:30:49 +00:00
.github github: Change target directory for cargo-doc 2022-02-22 05:41:52 +00:00
aarch64 arch: refactor pci range generation 2022-03-17 01:58:14 +00:00
acpi_tables acpi: support fixed power button in vPM1 2022-03-10 16:59:19 +00:00
arch x86_64: acpi: support for assigning physical GPEs 2022-03-21 09:16:38 +00:00
base acpi: extend acpi pm worker to listen on acpi_event 2022-03-21 09:16:42 +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 Enable windows tests for a few crates 2022-02-18 03:18:58 +00:00
common sys_util: netlink: add functionality for family name query and mcast group id parsing 2022-03-19 07:27:42 +00:00
crosvm-fuzz Refactoring: Move common/base into base 2022-03-17 00:01:27 +00:00
crosvm_control Refactoring: Move common/base into base 2022-03-17 00:01:27 +00:00
crosvm_plugin Refactoring: Move common/base into base 2022-03-17 00:01:27 +00:00
devices acpi: event listener: ignore events for direct GPEs 2022-03-21 09:16:43 +00:00
disk disk: fix compile-time warning 2022-03-17 07:40:51 +00:00
docs/book COIL: Migrate master to HEAD 2022-03-16 01:01:11 +00:00
fuse fuse: disambiguate max_read and max_write 2022-03-17 22:01:02 +00:00
gpu_display Refactoring: Move common/base into base 2022-03-17 00:01:27 +00:00
hypervisor Refactoring: Move common/base into base 2022-03-17 00:01:27 +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
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 Refactoring: Move common/base into base 2022-03-17 00:01: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
libvda libvda: regenerate bindings 2022-03-17 22:26:56 +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
net_sys Refactoring: Move common/base into base 2022-03-17 00:01:27 +00:00
net_util Refactoring: Move common/base into base 2022-03-17 00:01:27 +00:00
power_monitor Refactoring: Move common/base into base 2022-03-17 00:01:27 +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 system_allocator: add mmio-address-range parameter 2022-03-17 01:58:15 +00:00
rutabaga_gfx Refactoring: Move common/base into base 2022-03-17 00:01:27 +00:00
seccomp seccomp: use common_device.policy in tpm_device.policy 2022-02-23 19:23:31 +00:00
src main: add --direct-gpe argument 2022-03-21 09:16:39 +00:00
system_api_stub crosvm: migrate to Rust 2021 edition 2022-03-09 01:16:03 +00:00
tests crosvm: Fix running plugins integration tests 2022-03-10 01:00:38 +00:00
third_party upstream windows vmm_vhost 2022-03-17 01:56:08 +00:00
tools Refactoring script to use super:: instead of crate:: in win_sys_util 2022-03-17 23:57:24 +00:00
tpm2 crosvm: migrate to Rust 2021 edition 2022-03-09 01:16:03 +00:00
tpm2-sys crosvm: migrate to Rust 2021 edition 2022-03-09 01:16:03 +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 direct_irq: allow to register eventfd for GPE 2022-03-21 09:16:37 +00:00
vhost Ready vhost for windows testing 2022-03-18 18:35:37 +00:00
virtio_sys Refactoring: Move common/base into base 2022-03-17 00:01:27 +00:00
vm_control Refactoring: Move common/base into base 2022-03-17 00:01:27 +00:00
vm_memory Refactoring: Move common/base into base 2022-03-17 00:01:27 +00:00
x86_64 x86_64: acpi: support for assigning physical GPEs 2022-03-21 09:16:38 +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 ARCHITECTURE.md: fix repeated word typo 2022-02-25 22:41:16 +00:00
Cargo.toml x86_64: acpi: support for assigning physical GPEs 2022-03-21 09:16:38 +00:00
CONTRIBUTING.md CONTRIBUTING: Add links to mdbook 2022-02-01 10:39:32 +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 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