acrn-hypervisor/hypervisor/arch/x86
Conghui Chen a7563cb9bd hv: sched_bvt: add BVT scheduler
BVT (Borrowed virtual time) scheduler is used to schedule vCPUs on pCPU.
It has the concept of virtual time, vCPU with earliset virtual time is
dispatched first.

Main concepts:

tick timer:
    a period tick is used to measure the physcial time in units of MCU
    (minimum charing unit).
runqueue:
    thread in the runqueue is ordered by virtual time.
weight:
    each thread receives a share of the pCPU in proportion to its
    weight.
context switch allowance:
    the physcial time by which the current thread is allowed to advance
    beyond the next runnable thread.
warp:
    a thread with warp enabled will have a change to minus a value (Wi)
    from virtual time to achieve higher priority.
virtual time:
    AVT: actual virtual time, advance in proportional to weight.
    EVT: effective virtual time.
         EVT <- AVT - ( warp ? Wi : 0 )
    SVT: scheduler virtual time, the minimum AVT in the runqueue.

Tracked-On: #4410

Signed-off-by: Conghui Chen <conghui.chen@intel.com>
Signed-off-by: Shuo A Liu <shuo.a.liu@intel.com>
Acked-by: Eddie Dong <eddie.dong@intel.com>
2020-02-25 09:11:32 +08:00
..
boot hv: Let trampoline execution use 1GB pages 2019-10-28 13:44:32 +08:00
configs hv: add P2SB device to whitelist for apl-mrb 2020-02-24 12:21:29 +08:00
guest hv: rename BOOT_CPU_ID to BSP_CPU_ID 2020-02-25 09:08:14 +08:00
lib
seed hv: fixed by replace ull to ul. 2019-10-31 09:02:59 +08:00
cat.c hv: CAT is supposed to be enabled in the system level 2020-02-17 08:51:59 +08:00
cpu_caps.c hv:enable gpu iommu except APL platforms 2020-02-24 11:47:10 +08:00
cpu_state_tbl.c HV: add board specific cpu state table to support Px Cx 2019-07-29 20:25:16 +08:00
cpu.c hv: rename BOOT_CPU_ID to BSP_CPU_ID 2020-02-25 09:08:14 +08:00
e820.c hv: rename the ACRN_DBG_XXX 2020-01-14 10:21:23 +08:00
gdt.c
idt.S HV: Install a NMI handler in acrn IDT 2019-12-13 10:13:09 +08:00
init.c hv: rename BOOT_CPU_ID to BSP_CPU_ID 2020-02-25 09:08:14 +08:00
ioapic.c hv: rename the ACRN_DBG_XXX 2020-01-14 10:21:23 +08:00
irq.c hv: rename BOOT_CPU_ID to BSP_CPU_ID 2020-02-25 09:08:14 +08:00
Kconfig hv: sched_bvt: add BVT scheduler 2020-02-25 09:11:32 +08:00
lapic.c HV: clean up redundant macro in lapic.h 2019-12-27 12:27:08 +08:00
mmu.c hv:refine 'uint64_t' string print format in comm moudle 2019-11-09 11:42:38 +08:00
notify.c hv: fix pcpu_id mask issue in smp_call_function() 2020-01-17 09:20:53 +08:00
page.c hv: ept: build 4KB page mapping in EPT for RTVM for MCE on PSC 2019-12-03 09:17:04 +08:00
pagetable.c hv: rename the ACRN_DBG_XXX 2020-01-14 10:21:23 +08:00
pm.c pm: S5: update the system shutdown logical in ACRN 2019-12-23 15:15:09 +08:00
sched.S hv: sched: rename schedule related structs and vars 2019-10-16 10:25:53 +08:00
security.c hv: config: add an option to disable mce on psc workaround 2019-12-03 09:17:04 +08:00
sgx.c
timer.c hv: rename BOOT_CPU_ID to BSP_CPU_ID 2020-02-25 09:08:14 +08:00
trampoline.c hv: refine 'uint64_t' string print format in x86 moudle 2019-11-09 11:42:38 +08:00
vmx.c hv:fix "no prototype for non-static function" 2019-07-09 10:36:03 +08:00
vtd.c hv: vPCI: add assign/deassign PCI device HC APIs 2020-02-24 16:17:38 +08:00
wakeup.S hv: pm: correct the function name 2019-09-11 17:30:24 +08:00