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 @@
+
+
+
+
},