commit | 55a68e9209f20bd33a4a037df63681843afb4f4d | [log] [tgz] |
---|---|---|
author | Sebastian Ene <sebastianene@google.com> | Mon Oct 16 10:29:42 2023 +0000 |
committer | crosvm LUCI <crosvm-scoped@luci-project-accounts.iam.gserviceaccount.com> | Tue Oct 17 17:11:19 2023 +0000 |
tree | 48d93c5ad8610e895932c32529294d71e18c0ed8 | |
parent | afe326684895592db15d582968a2ffe9461f680e [diff] |
devices: vmwdt: Fix race condition on VM reset When the vCPU threads are shutting down, a message is sent to the vmwdt worker thread to stop polling for timer expiration events. If there are pending timer expiration events, they are processed while the VCPU thread is dead. This triggers a panic message because the stat file for the corresponding VCPU thread is not found. Verify if there are pending shutdown events before dealing with the timer events. Allow get_guest_time_ms() to fail without panic if there is no stat entry found for the current vcpu. BUG=b:305630196 TEST=manual testing build and Virtualization apk on a Husky device Change-Id: I546c230a15341eda647800634421ae3289ca5049 Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/4943010 Reviewed-by: Daniel Verkamp <dverkamp@chromium.org> Commit-Queue: Sebastian Ene <sebastianene@google.com>
crosvm is a virtual machine monitor (VMM) based on Linux’s 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 ChromeOS platform. Compared to QEMU, crosvm doesn’t 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 ChromeOS devices.