devices: virtio: vsock: Use async locks in async contexts In the vsock code, we use a mutex to protect our connections `HashMap` so that we can have access to them from multiple async tasks. We were using a regular synchronous mutex for this, which could cause the async tasks to block on these mutexes, possibly leading to blocking up the executor and deadlocking vsock. We haven't observed any bugs or deadlocks that are directly attributable to this; it's likely that we are managing to avoid this by not holding the lock over await points. We should still fix this for correctness, as we have no way to otherwise enforce that future changes should uphold the current guarantees. BUG: b:247548758 TEST: Built and ran crosvm downstream. Change-Id: I8928514be491f111887fbf1adac7a3f8b38219dd Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/4062047 Commit-Queue: Richard Otap <rotap@google.com> Reviewed-by: Noah Gold <nkgold@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 Chrome OS 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 Chrome OS devices.