mirror of
https://github.com/projectacrn/acrn-hypervisor.git
synced 2025-05-31 19:35:28 +00:00
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> |
||
---|---|---|
.. | ||
delay.c | ||
efi_mmap.c | ||
event.c | ||
hv_main.c | ||
hypercall.c | ||
irq.c | ||
ptdev.c | ||
sched_bvt.c | ||
sched_iorr.c | ||
sched_noop.c | ||
sched_prio.c | ||
schedule.c | ||
softirq.c | ||
ticks.c | ||
timer.c | ||
trusty_hypercall.c | ||
vm_load.c |