mirror of
https://github.com/projectacrn/acrn-hypervisor.git
synced 2025-08-01 07:49:39 +00:00
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 += arch/x86/sgx.c
|
||||||
HW_C_SRCS += common/softirq.c
|
HW_C_SRCS += common/softirq.c
|
||||||
HW_C_SRCS += common/schedule.c
|
HW_C_SRCS += common/schedule.c
|
||||||
|
ifeq ($(CONFIG_SCHED_NOOP),y)
|
||||||
HW_C_SRCS += common/sched_noop.c
|
HW_C_SRCS += common/sched_noop.c
|
||||||
|
endif
|
||||||
|
ifeq ($(CONFIG_SCHED_IORR),y)
|
||||||
HW_C_SRCS += common/sched_iorr.c
|
HW_C_SRCS += common/sched_iorr.c
|
||||||
|
endif
|
||||||
HW_C_SRCS += hw/pci.c
|
HW_C_SRCS += hw/pci.c
|
||||||
HW_C_SRCS += arch/x86/configs/vm_config.c
|
HW_C_SRCS += arch/x86/configs/vm_config.c
|
||||||
HW_C_SRCS += arch/x86/configs/$(CONFIG_BOARD)/board.c
|
HW_C_SRCS += arch/x86/configs/$(CONFIG_BOARD)/board.c
|
||||||
|
@ -37,6 +37,27 @@ config HYBRID
|
|||||||
|
|
||||||
endchoice
|
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
|
config BOARD
|
||||||
string "Target board"
|
string "Target board"
|
||||||
help
|
help
|
||||||
|
@ -73,7 +73,12 @@ void init_sched(uint16_t pcpu_id)
|
|||||||
ctl->flags = 0UL;
|
ctl->flags = 0UL;
|
||||||
ctl->curr_obj = NULL;
|
ctl->curr_obj = NULL;
|
||||||
ctl->pcpu_id = pcpu_id;
|
ctl->pcpu_id = pcpu_id;
|
||||||
|
#ifdef CONFIG_SCHED_NOOP
|
||||||
ctl->scheduler = &sched_noop;
|
ctl->scheduler = &sched_noop;
|
||||||
|
#endif
|
||||||
|
#ifdef CONFIG_SCHED_IORR
|
||||||
|
ctl->scheduler = &sched_iorr;
|
||||||
|
#endif
|
||||||
if (ctl->scheduler->init != NULL) {
|
if (ctl->scheduler->init != NULL) {
|
||||||
ctl->scheduler->init(ctl);
|
ctl->scheduler->init(ctl);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user