51e6dc5864
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 smaller than it's avt, it will keep the original avt. With the svt, it can prevent a thread from claiming an excessive share of CPU after sleepting for a long time. 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 catch up 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, update svt in pick_next handler to make sure svt is align with the avt of the first obj in runqueue. Tracked-On: #7944 Signed-off-by: Conghui <conghui.chen@intel.com> Reviewed-by: Eddie Dong <eddie.dong@intel.com> Reviewed-by: Wang, Yu1 <yu1.wang@intel.com> |
||
---|---|---|
.. | ||
acpi_parser | ||
arch/x86 | ||
boot | ||
bsp/ld | ||
common | ||
debug | ||
dm | ||
hw | ||
include | ||
lib | ||
quirks | ||
release | ||
scripts | ||
Makefile | ||
README.rst |
README.rst
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/