hv: sched: use hypervisor configuration to choose scheduler
For now, we set NOOP scheduler as default. User can choose IORR scheduler as needed. Tracked-On: #4178 Signed-off-by: Shuo A Liu <shuo.a.liu@intel.com> Acked-by: Eddie Dong <eddie.dong@intel.com>
This commit is contained in:
parent
6a144e6e3e
commit
b32ae229fb
|
@ -211,8 +211,12 @@ HW_C_SRCS += arch/x86/cat.c
|
|||
HW_C_SRCS += arch/x86/sgx.c
|
||||
HW_C_SRCS += common/softirq.c
|
||||
HW_C_SRCS += common/schedule.c
|
||||
ifeq ($(CONFIG_SCHED_NOOP),y)
|
||||
HW_C_SRCS += common/sched_noop.c
|
||||
endif
|
||||
ifeq ($(CONFIG_SCHED_IORR),y)
|
||||
HW_C_SRCS += common/sched_iorr.c
|
||||
endif
|
||||
HW_C_SRCS += hw/pci.c
|
||||
HW_C_SRCS += arch/x86/configs/vm_config.c
|
||||
HW_C_SRCS += arch/x86/configs/$(CONFIG_BOARD)/board.c
|
||||
|
|
|
@ -37,6 +37,27 @@ config HYBRID
|
|||
|
||||
endchoice
|
||||
|
||||
choice
|
||||
prompt "ACRN Scheduler"
|
||||
default SCHED_NOOP
|
||||
help
|
||||
Select the CPU scheduler to be used by the hypervisor
|
||||
|
||||
config SCHED_NOOP
|
||||
bool "NOOP scheduler"
|
||||
help
|
||||
The NOOP (No-Operation) scheduler means there is a strict 1 to 1 mapping
|
||||
between vCPUs and pCPUs.
|
||||
|
||||
config SCHED_IORR
|
||||
bool "IORR scheduler"
|
||||
help
|
||||
IORR (IO sensitive Round Robin) scheduler supports multipule vCPUs running on
|
||||
on one pCPU, and they will be scheduled by a IO sensitive round robin policy.
|
||||
|
||||
endchoice
|
||||
|
||||
|
||||
config BOARD
|
||||
string "Target board"
|
||||
help
|
||||
|
|
|
@ -73,7 +73,12 @@ void init_sched(uint16_t pcpu_id)
|
|||
ctl->flags = 0UL;
|
||||
ctl->curr_obj = NULL;
|
||||
ctl->pcpu_id = pcpu_id;
|
||||
#ifdef CONFIG_SCHED_NOOP
|
||||
ctl->scheduler = &sched_noop;
|
||||
#endif
|
||||
#ifdef CONFIG_SCHED_IORR
|
||||
ctl->scheduler = &sched_iorr;
|
||||
#endif
|
||||
if (ctl->scheduler->init != NULL) {
|
||||
ctl->scheduler->init(ctl);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue