acrn-hypervisor/devicemodel
Yin Fengwei 9456d91b76 dm: hugetlb: add file lock to make sure huge page reserve atomic
Currently, DM only access /sys/kernel/mm/hugepages/hugepages-2048kB/
entries according to its own huge page requirement. So it could have
following race issue:

         DM1                                   DM2
      read nr pages
                                            read nr pages
                                            write DM2 nr pages
      write DM1 nr pages

Suppose we should write DM1 + DM2 nr page to kernel sysfs interface
to reserve enough huge page (DM1 + DM2). But actually only reserve
huge page requested by DM1.  Which could trigger one VM can't boot.
We can easily hit this issue if we enable multiple UOS auto boot
because more than one VM are started at almost same time.

We add file lock to make sure huge page reserving in DM atomic.

Tracked-On: #3729
Signed-off-by: Yin Fengwei <fengwei.yin@intel.com>
Acked-by: Wang Yu <yu1.wang@intel.com>
2019-09-27 15:12:36 +08:00
..
arch/x86 dm: pm: move host power button related code out of pm.c 2019-09-11 13:27:10 +08:00
bios OVMF release v1.3 2019-09-26 11:33:43 +08:00
core dm: hugetlb: add file lock to make sure huge page reserve atomic 2019-09-27 15:12:36 +08:00
hw DM USB: xHCI: support multiple ERST 2019-09-26 11:29:22 +08:00
include DM USB: xHCI: rename some variables about ERST 2019-09-26 11:29:22 +08:00
lib dm: Fix some issues from string operations 2018-12-25 18:40:04 +08:00
log dm: remove unsafe apis in dm log 2019-07-12 09:41:15 +08:00
samples dm: script: remove guest cpu number 2019-09-24 11:58:45 +08:00
MAINTAINERS
Makefile DM: add guest vm power manager by vuart 2019-09-11 16:43:22 +08:00
README.rst Documentation: clean-up of isolated README.rst files 2018-11-20 11:09:53 -08:00

README.rst

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.

.. _`ACRN Hypervisor`: https://github.com/projectacrn/acrn-hypervisor
.. _`Project ACRN documentation`: https://projectacrn.github.io/