mirror of
https://github.com/projectacrn/acrn-hypervisor.git
synced 2026-07-10 15:51:13 +00:00
It is necessary to notify the VHM and hypervisor on the completion of a VHM request even when the UOS is in suspend or system reset mode because the VHM and hypervisor rely on the notification to reset their own states on the request. Currently the VHM request state is checked against REQ_STATE_PROCESSING instead of REQ_STATE_COMPLETE when handling system reset or suspend/resume, leading to a completed request unnotified, and causing the HV to complain on an occupied VHM request when it raises a new one. This patch fixes this issue by properly notifying completed requests to the VHM & hypervisor. Some concerns are raised during a discussion on the potential races which does not hurt for now but may in the future. These considerations and potential solutions are documented as comments for future reference. Tracked-On: #895 Signed-off-by: Junjie Mao <junjie.mao@intel.com> Acked-by: Yin Fengwei <fengwei.yin@intel.com>
ACRN Device Model
#################
Introduction
============
The ACRN Device Model provides **device sharing** capabilities between the Service OS and Guest OSs. It is a component that is used in conjunction with the `ACRN Hypervisor`_ and this is installed within the Service OS. You can find out more about Project ACRN on the `Project ACRN documentation`_ website.
Building the Device Model
=========================
Build dependencies
******************
* For Clear Linux
.. code-block:: console
sudo swupd bundle-add os-clr-on-clr \
os-utils-gui-dev
* For CentOS
.. code-block:: console
sudo yum install gcc \
libuuid-devel \
openssl-devel \
libpciaccess-devel \
libusb-devel
* For Fedora 27
.. code-block:: console
sudo dnf install gcc \
libuuid-devel \
openssl-devel \
libpciaccess-devel \
libusb-devel
Build
*****
To build the Device Model
.. code-block:: console
make
To clean the build artefacts
.. code-block:: console
make clean
Runtime dependencies
********************
* On CentOS
.. code-block:: console
sudo yum install openssl-libs \
zlib \
libpciaccess \
libuuid \
libusb
* On Fedora 27
.. code-block:: console
sudo dnf install openssl-libs \
zlib \
libpciaccess \
libuuid \
libusb
.. _`ACRN Hypervisor`: https://github.com/projectacrn/acrn-hypervisor
.. _`Project ACRN documentation`: https://projectacrn.github.io/