acrn-hypervisor/hypervisor
Conghui 8c13ff78f9 hv: sched: fix bug when reboot vm
BVT schedule rule:
When a new thread is wakeup and added to runqueue, it will get the
smallest avt (svt) from runqueue to initiate its avt. If the svt is
small than it's avt, it will keep the original avt.

For the reboot issue, when the VM is reboot, it means a new vcpu thread
is wakeup, but at this time, the Service VM's vcpu thread is blocked,
and removed from the runqueue, and the runqueue is empty, so the svt is
0. The new vcpu thread will get avt=0. avt=0 means very high priority,
and can run for a very long time until it catchup with other thread's
avt in runqueue.
At this time, when Service VM's vcpu thread wakeup, it will check the
svt, but the svt is very small, so will not update it's avt according to
the rule, thus has a very low priority and cannot be scheduled.

To fix it, adjust the new thread's avt when there is another thread in
runqueue.

Tracked-On: #7692
Signed-off-by: Conghui <conghui.chen@intel.com>
2022-06-07 11:20:21 +08:00
..
acpi_parser Remove "All rights reserved" string headers 2022-04-06 13:21:02 +08:00
arch/x86 hv: vtd: reset the one-shot bits for GCMD_REG 2022-05-20 09:30:25 +08:00
boot hv: compile out unused function if CONFIG_MULTIBOOT2 is disabled 2022-05-31 18:18:57 +08:00
bsp/ld HV: fix MISRA violation of _ld_ram_xxx 2021-11-26 16:45:17 +08:00
common hv: sched: fix bug when reboot vm 2022-06-07 11:20:21 +08:00
debug hv: debug: fix type size mismatch in get_entry_info 2022-05-24 10:00:43 +08:00
dm hv: fix build warning with gcc-11.2 2022-05-19 14:44:35 +08:00
hw Remove "All rights reserved" string headers 2022-04-06 13:21:02 +08:00
include hv: sched_event: Change nqueued from int8_t to int32_t 2022-05-25 09:37:04 +08:00
lib hv: crypto: fix a minor build Werror 2022-05-13 10:47:51 +08:00
quirks Remove "All rights reserved" string headers 2022-04-06 13:21:02 +08:00
release Remove "All rights reserved" string headers 2022-04-06 13:21:02 +08:00
scripts config-tools: ignore the scenario and board field 2022-04-24 13:53:32 +08:00
MAINTAINERS
Makefile hv: Fixup serial.conf permissions 2022-05-10 09:20:14 +08:00
README.rst doc: fix utf-8 punctuation, branding, spelling 2019-03-14 09:13:58 -07:00

ACRN Hypervisor
###############

The open source `Project ACRN`_ defines a device hypervisor reference stack and
an architecture for running multiple software subsystems, managed securely, on
a consolidated system by means of a virtual machine manager. It also defines a
reference framework implementation for virtual device emulation, called the
"ACRN Device Model".

The ACRN Hypervisor is a Type 1 reference hypervisor stack, running directly on
the bare-metal hardware, and is suitable for a variety of IoT and embedded
device solutions. The ACRN hypervisor addresses the gap that currently exists
between datacenter hypervisors, and hard partitioning hypervisors. The ACRN
hypervisor architecture partitions the system into different functional
domains, with carefully selected guest OS sharing optimizations for IoT and
embedded devices.

You can find out more about Project ACRN on the `Project ACRN documentation`_
website.

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