commit | 402fd2edb66ae0911ee31383eb181fa68166c971 | [log] [tgz] |
---|---|---|
author | Frederick Mayle <fmayle@google.com> | Thu Nov 14 17:56:32 2024 -0800 |
committer | Frederick Mayle <fmayle@google.com> | Thu Nov 14 19:13:10 2024 -0800 |
tree | 14b5b8bb7897d7c5e1d9f7e2a8b0cb588f8d13f0 | |
parent | ccf6cdbffd750fb0bd55f95b546dd9bdb34aa119 [diff] |
microdroid_manager: wait for failure reason to transmit Writing only 16 bytes at a time makes the race condition less likely to happen, but, theoretically, it isn't a complete fix. Instead, use `tcdrain` to block until the serial port driver knows all the data has been trasmitted. In the very unlikely case that the failure reason is larger than the pipe capacity, this could cause a deadlock, so the pipe read is moved into a new thread. I was not able to reproduce the race condition either before or after this change. Bug: 220071963 Test: packages/modules/Virtualization/android/vm/vm_shell.sh start-microdroid Change-Id: I3626e942f4a4ec86422c40befb28ee34f2682f22
Android Virtualization Framework (AVF) provides secure and private execution environments for executing code. AVF is ideal for security-oriented use cases that require stronger isolation assurances over those offered by Android’s app sandbox.
Visit our public doc site to learn more about what AVF is, what it is for, and how it is structured. This repository contains source code for userspace components of AVF.
If you want a quick start, see the getting started guideline and follow the steps there.
For in-depth explanations about individual topics and components, visit the following links.
AVF components:
AVF APIs:
How-Tos: