diff --git a/hypervisor/include/common/schedule.h b/hypervisor/include/common/schedule.h index b7131385f..d801da56f 100644 --- a/hypervisor/include/common/schedule.h +++ b/hypervisor/include/common/schedule.h @@ -42,6 +42,12 @@ enum thread_priority { */ struct sched_params { uint32_t prio; /* The priority of a thread */ + + /* per thread parameters for bvt scheduler */ + uint8_t bvt_weight; /* the weight of a thread */ + int32_t bvt_warp_value; /* the warp reduce effective VT to boost priority */ + uint32_t bvt_warp_limit; /* max time in one warp */ + uint32_t bvt_unwarp_period; /* min unwarp time after a warp */ }; struct thread_object; diff --git a/misc/config_tools/schema/config.xsd b/misc/config_tools/schema/config.xsd index e7a79fbc4..61a4f376d 100644 --- a/misc/config_tools/schema/config.xsd +++ b/misc/config_tools/schema/config.xsd @@ -442,6 +442,62 @@ These settings can only be changed at build time. Specify the VM vCPU priority for scheduling. + + + Specify the VM vCPU weight for scheduling. + + + + Integer from 1 to 128. + + + + + + + + + + Specify the VM vCPU warp in MCU (minimum charging unit, i.e. tick period) to prioritize them. + + + + Integer from -8192 to 8192. + + + + + + + + + + Specify the VM vCPU warp limit time in MCU (minimum charging unit, i.e. tick period) to prevent starving non-warpped threads. + + + + Integer from 0 to 10. + + + + + + + + + + Specify the VM vCPU unwarp period in MCU (minimum charging unit, i.e. tick period) after a warp. + + + + Integer from 0 to 10. + + + + + + + Specify the companion VM id of this VM. diff --git a/misc/config_tools/xforms/vm_configurations.c.xsl b/misc/config_tools/xforms/vm_configurations.c.xsl index a2ef700cc..7ca89d120 100644 --- a/misc/config_tools/xforms/vm_configurations.c.xsl +++ b/misc/config_tools/xforms/vm_configurations.c.xsl @@ -112,6 +112,10 @@ + + + + },