No description
Find a file
Zide Chen 87a1a84366 devices: acpi: add SCI resample event handling
In order to ensure proper emulation of PM1 and GPE events for the guest
and prevent lost events, upon receiving SCI resample event we need to
trigger SCI interrupt again if the status of some of the virtual PM1 or
GPE events is still not cleared, i.e. if:

a. the guest has received the last PM1 or GPE event but hasn't cleared
   it for some reason.

or

b. the guest hasn't received the last PM1 or GPE event because it was
   processing the previous SCI (i.e. SCI was masked in the guest).

BUG=b:205072342
TEST=inject GPE or power button event from command line
and inspect /sys/firmware/acpi/interrupts/

Change-Id: Iff9f9812328823b1876721fbb4be9d0e937f2737
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/crosvm/+/3492219
Reviewed-by: Dmitry Torokhov <dtor@chromium.org>
Tested-by: kokoro <noreply+kokoro@google.com>
Commit-Queue: Tomasz Nowicki <tnowicki@google.com>
2022-03-19 07:27:45 +00:00
.cargo clippy: fix devices crate 2022-02-07 22:22:39 +00:00
.devcontainer
.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 pstore: reserve ramoops region in system allocator 2022-03-17 01:58:13 +00:00
base Refactoring: Move common/base into base 2022-03-17 00:01:27 +00:00
bin
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 devices: acpi: add SCI resample event handling 2022-03-19 07:27:45 +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
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 system_allocator: add mmio-address-range parameter 2022-03-17 01:58:15 +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 Refactoring: Move common/base into base 2022-03-17 00:01:27 +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 devices: acpi: add SCI resample event handling 2022-03-19 07:27:45 +00:00
.dockerignore
.gitignore
.gitmodules
.rustfmt.toml
ARCHITECTURE.md ARCHITECTURE.md: fix repeated word typo 2022-02-25 22:41:16 +00:00
Cargo.toml Refactoring: Move common/base into base 2022-03-17 00:01:27 +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
rust-toolchain Upgrade rust toolchain version to 1.58.1 2022-02-04 02:20:36 +00:00
setup_cros_cargo.sh
test_all
unblocked_terms.txt

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