linux/Documentation/driver-api
Shrikanth Hegde 9a8e740ee9 virt: Introduce steal governor driver
Introduce a new driver in virt named steal_governor. This driver
will compute the steal time and drive the policy decisions regarding the
preferred CPU state.

Note that this driver is strictly intended for actual guests. Hence
block it on Xen dom0.
More details can be found in Documentation/driver-api/steal-governor.rst.

A new kconfig called STEAL_GOVERNOR is introduced in subsequent patches,
which enables this driver. This driver will select CONFIG_PREFERRED_CPU.
This makes configs driven by user preference/configuration.
When the driver is disabled, preferred CPUs remain the same as active CPUs.

The file layout of the driver is kept simple for now. The code is in
drivers/virt/steal_governor.c, and the configs are part of
drivers/virt/Kconfig.

The main structure of the steal governor contains:
- work, delay: Deferred periodic work function variables.
- steal, time: Used to calculate deltas during periodic work.
- interval_ms, high_threshold, low_threshold: Tuning knobs for the
  steal governor.

While there, add MAINTAINERS entry for this new driver.

Suggested-by: Yury Norov <yury.norov@gmail.com>
Suggested-by: K Prateek Nayak <kprateek.nayak@amd.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-11-sshegde@linux.ibm.com
2026-09-28 08:44:43 +02:00
..
80211 Documentation: use a source-read extension for the index link boilerplate 2026-01-23 11:59:34 -07:00
acpi ACPI: Update upstream ACPICA repository URL in documentation 2026-08-20 21:40:29 +02:00
backlight
coco Documentation: use a source-read extension for the index link boilerplate 2026-01-23 11:59:34 -07:00
crypto Documentation: use a source-read extension for the index link boilerplate 2026-01-23 11:59:34 -07:00
cxl cxl: docs/linux/dax-driver - fix typos 2026-06-29 08:40:06 -07:00
dmaengine dmaengine: Add API to combine configuration and preparation (sg and single) 2026-06-30 16:42:30 +05:30
driver-model clk: Add devm_clk_bulk_get_enable() 2026-07-28 11:25:30 -04:00
early-userspace doc: early_userspace_support.rst: trivial fix: directory -> file 2026-02-23 14:52:36 -07:00
firmware Documentation: use a source-read extension for the index link boilerplate 2026-01-23 11:59:34 -07:00
fpga
gpio Documentation: gpio: update the preferred method for using software node lookup 2026-04-08 15:52:26 +02:00
hte
i3c docs: driver-api: fix spelling of "buses". 2025-09-18 10:40:46 -06:00
iio docs: iio: triggered-buffers: use new helpers in example 2026-05-31 11:01:46 +01:00
issei issei: initial driver skeleton 2026-07-17 15:48:11 +02:00
md
media media: Documentation: Add myself as maintainer for media-ci 2026-07-10 09:53:50 +02:00
mei
memory-devices Documentation: use a source-read extension for the index link boilerplate 2026-01-23 11:59:34 -07:00
mmc
mtd mtd: spi-nor: Add steps for testing locking with CMP 2026-05-27 14:36:02 +02:00
nfc
nvdimm nvdimm/btt: Handle preemption in BTT lane acquisition 2026-06-01 13:53:24 -07:00
pci docs: driver-api: fix 6 spelling typos in Documentation/driver-api 2026-03-25 12:36:02 -06:00
phy docs: fix 're-use' -> 'reuse' in documentation 2026-02-02 09:54:15 -07:00
pldmfw Documentation: pldmfw: Demote library overview section 2025-11-05 11:29:30 -07:00
pm Documentation: use a source-read extension for the index link boilerplate 2026-01-23 11:59:34 -07:00
rapidio
serial dt-bindings: serial: rs485: remove deprecated .txt binding stub 2026-05-22 11:47:18 +02:00
soundwire Documentation: use a source-read extension for the index link boilerplate 2026-01-23 11:59:34 -07:00
surface_aggregator Documentation: use a source-read extension for the index link boilerplate 2026-01-23 11:59:34 -07:00
thermal thermal: int340x: processor_thermal: Enable slow workload type hints 2026-01-07 21:42:10 +01:00
tty docs: fix 're-use' -> 'reuse' in documentation 2026-02-02 09:54:15 -07:00
usb Documentation: usb: remove dead link to external USB programming guide 2026-07-16 16:23:06 -06:00
virtio
xilinx Documentation: use a source-read extension for the index link boilerplate 2026-01-23 11:59:34 -07:00
aperture.rst
auxiliary_bus.rst
basics.rst percpu_ref: fix documentation of maximum value 2026-07-28 21:11:55 -07:00
clk.rst docs: clk: include some identifiers to keep documentation up to date 2026-06-29 17:51:43 -04:00
component.rst
connector.rst
console.rst
devfreq.rst
device_link.rst
device-io.rst docs: driver-api: fix spelling of "buses". 2025-09-18 10:40:46 -06:00
dma-buf.rst dma-buf: Remove DMA-BUF sysfs stats 2026-01-19 19:10:01 +05:30
dpll.rst dpll: use pin owner's dpll ref for pin-level attribute setting 2026-08-11 11:30:07 +02:00
edac.rst
eisa.rst docs: driver-api: eisa: add SPDX license identifier 2026-05-03 09:08:37 -06:00
extcon.rst
firewire.rst
frame-buffer.rst
generic_pt.rst iommupt: Documentation fixes 2025-11-07 11:12:03 +01:00
generic-counter.rst
hsi.rst
hw-recoverable-errors.rst vmcoreinfo: track and log recoverable hardware errors 2025-11-27 14:24:44 -08:00
i2c.rst
index.rst virt: Introduce steal governor driver 2026-09-28 08:44:43 +02:00
infiniband.rst RDMA/hfi1: Remove opa_vnic 2026-03-10 07:51:30 -04:00
infrastructure.rst docs/driver-api: infrastructure: add property.h and fwnode.h 2026-07-30 16:23:07 +02:00
input.rst
interconnect.rst docs: interconnect: Document consumer APIs and drop outdated text 2026-03-17 08:51:28 -06:00
io_ordering.rst
io-mapping.rst
ioctl.rst
ipmb.rst
ipmi.rst docs: ipmi: fix word order in create-user description 2026-08-03 12:06:28 -06:00
isa.rst
libata.rst docs: driver-api: fix 6 spelling typos in Documentation/driver-api 2026-03-25 12:36:02 -06:00
mailbox.rst Documentation: adopt new coding style of type-aware kmalloc-family 2026-05-03 08:54:21 -06:00
men-chameleon-bus.rst
message-based.rst
misc_devices.rst
miscellaneous.rst
mtdnand.rst treewide: Update email address 2026-01-11 06:09:11 -10:00
ntb.rst Documentation: NTB: Fix typo 2025-05-19 09:04:21 -06:00
nvmem.rst nvmem: Remove unused nvmem cell table support 2025-05-21 14:28:27 +02:00
parport-lowlevel.rst Documentation: parport-lowlevel: Separate function listing code blocks 2025-11-10 12:47:36 -07:00
pin-control.rst docs: driver-api: pin-control: fix spelling of below 2026-07-10 20:45:29 +02:00
pps.rst
ptp.rst
pwm.rst docs: pwm: Adapt Locking paragraph to reality 2025-07-07 08:39:36 +02:00
pwrseq.rst power: sequencing: rename pwrseq_power_on/off() to pwrseq_enable/disable() 2026-08-26 10:05:45 +02:00
regulator.rst
reset.rst reset: convert the core API to using firmware nodes 2026-03-09 10:20:04 +01:00
rfkill.rst
s390-drivers.rst
scsi.rst docs: driver-api: fix spelling of "buses". 2025-09-18 10:40:46 -06:00
slimbus.rst
sm501.rst
spi.rst docs: driver-api: fix spelling of "buses". 2025-09-18 10:40:46 -06:00
steal-governor.rst virt: Introduce steal governor driver 2026-09-28 08:44:43 +02:00
switchtec.rst
sync_file.rst
target.rst
tee.rst tee: Adapt documentation to cover recent additions 2025-12-17 18:28:28 +01:00
uio-howto.rst Docs/driver-api/uio-howto: document mmap_prepare callback 2026-06-23 14:33:38 -06:00
vfio-mediated-device.rst
vfio-pci-device-specific-driver-acceptance.rst
vfio.rst Documentation: Update VFIO NOIOMMU mode 2026-07-14 12:05:01 -03:00
vme.rst staging: vme_user: replace deprecated mmap hook with mmap_prepare 2026-04-05 13:53:44 -07:00
w1.rst
wbrf.rst
wmi.rst platform/wmi: Add helper functions for WMI string conversions 2026-01-20 15:47:51 +02:00
xillybus.rst
zorro.rst