virt/steal_governor: Enable the driver

Provide a config option to enable the steal_governor driver.
Since the feature targets paravirtualized environments and requires SMP,
enforce those dependencies. The driver selects CONFIG_PREFERRED_CPU
for the core scheduler mechanisms to work.

It is recommended to build the driver as a module (m) instead of
built-in (y) due to the following reasons:

- Module parameters are read-only after initialization. Building as a
  module allows updating these parameters by simply reloading the module.
  Default module parameters cannot work in all configurations.

- The driver can be completely disabled by unloading the module.

- This feature works best when all VMs operate in a cooperative manner.
  Requiring an explicit module load ensures intentional deployment
  across all VMs by the system administrator.

Suggested-by: Yury Norov <yury.norov@gmail.com>
Signed-off-by: Shrikanth Hegde <sshegde@linux.ibm.com>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Link: https://patch.msgid.link/20260928053728.797539-14-sshegde@linux.ibm.com
This commit is contained in:
Shrikanth Hegde 2026-09-28 11:07:28 +05:30 committed by Peter Zijlstra
parent 27d47ebce4
commit 1fb28c664a
2 changed files with 18 additions and 0 deletions

View File

@ -41,6 +41,23 @@ config FSL_HV_MANAGER
4) A kernel interface for receiving callbacks when a managed
partition shuts down.
config STEAL_GOVERNOR
tristate "Dynamic vCPU management based on steal time"
depends on PARAVIRT && SMP
select PREFERRED_CPU
default m
help
This driver helps to reduce the steal time in paravirtualized
environments, thereby reducing vCPU preemption costs.
By default preferred CPUs will be same as active CPUs. Depending
on the steal time when steal_governor driver is enabled,
preferred CPUs could become subset of active CPUs.
More details are at: Documentation/driver-api/steal-governor.rst
It is recommended to build it as module and load the module
to enable it.
source "drivers/virt/vboxguest/Kconfig"
source "drivers/virt/nitro_enclaves/Kconfig"

View File

@ -5,6 +5,7 @@
obj-$(CONFIG_FSL_HV_MANAGER) += fsl_hypervisor.o
obj-$(CONFIG_VMGENID) += vmgenid.o
obj-$(CONFIG_STEAL_GOVERNOR) += steal_governor.o
obj-y += vboxguest/
obj-$(CONFIG_NITRO_ENCLAVES) += nitro_enclaves/