Skip to content

Commit 2c9b351

Browse files
committed
Merge tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm
Pull kvm updates from Paolo Bonzini: "ARM: - Initial infrastructure for shadow stage-2 MMUs, as part of nested virtualization enablement - Support for userspace changes to the guest CTR_EL0 value, enabling (in part) migration of VMs between heterogenous hardware - Fixes + improvements to pKVM's FF-A proxy, adding support for v1.1 of the protocol - FPSIMD/SVE support for nested, including merged trap configuration and exception routing - New command-line parameter to control the WFx trap behavior under KVM - Introduce kCFI hardening in the EL2 hypervisor - Fixes + cleanups for handling presence/absence of FEAT_TCRX - Miscellaneous fixes + documentation updates LoongArch: - Add paravirt steal time support - Add support for KVM_DIRTY_LOG_INITIALLY_SET - Add perf kvm-stat support for loongarch RISC-V: - Redirect AMO load/store access fault traps to guest - perf kvm stat support - Use guest files for IMSIC virtualization, when available s390: - Assortment of tiny fixes which are not time critical x86: - Fixes for Xen emulation - Add a global struct to consolidate tracking of host values, e.g. EFER - Add KVM_CAP_X86_APIC_BUS_CYCLES_NS to allow configuring the effective APIC bus frequency, because TDX - Print the name of the APICv/AVIC inhibits in the relevant tracepoint - Clean up KVM's handling of vendor specific emulation to consistently act on "compatible with Intel/AMD", versus checking for a specific vendor - Drop MTRR virtualization, and instead always honor guest PAT on CPUs that support self-snoop - Update to the newfangled Intel CPU FMS infrastructure - Don't advertise IA32_PERF_GLOBAL_OVF_CTRL as an MSR-to-be-saved, as it reads '0' and writes from userspace are ignored - Misc cleanups x86 - MMU: - Small cleanups, renames and refactoring extracted from the upcoming Intel TDX support - Don't allocate kvm_mmu_page.shadowed_translation for shadow pages that can't hold leafs SPTEs - Unconditionally drop mmu_lock when allocating TDP MMU page tables for eager page splitting, to avoid stalling vCPUs when splitting huge pages - Bug the VM instead of simply warning if KVM tries to split a SPTE that is non-present or not-huge. KVM is guaranteed to end up in a broken state because the callers fully expect a valid SPTE, it's all but dangerous to let more MMU changes happen afterwards x86 - AMD: - Make per-CPU save_area allocations NUMA-aware - Force sev_es_host_save_area() to be inlined to avoid calling into an instrumentable function from noinstr code - Base support for running SEV-SNP guests. API-wise, this includes a new KVM_X86_SNP_VM type, encrypting/measure the initial image into guest memory, and finalizing it before launching it. Internally, there are some gmem/mmu hooks needed to prepare gmem-allocated pages before mapping them into guest private memory ranges This includes basic support for attestation guest requests, enough to say that KVM supports the GHCB 2.0 specification There is no support yet for loading into the firmware those signing keys to be used for attestation requests, and therefore no need yet for the host to provide certificate data for those keys. To support fetching certificate data from userspace, a new KVM exit type will be needed to handle fetching the certificate from userspace. An attempt to define a new KVM_EXIT_COCO / KVM_EXIT_COCO_REQ_CERTS exit type to handle this was introduced in v1 of this patchset, but is still being discussed by community, so for now this patchset only implements a stub version of SNP Extended Guest Requests that does not provide certificate data x86 - Intel: - Remove an unnecessary EPT TLB flush when enabling hardware - Fix a series of bugs that cause KVM to fail to detect nested pending posted interrupts as valid wake eents for a vCPU executing HLT in L2 (with HLT-exiting disable by L1) - KVM: x86: Suppress MMIO that is triggered during task switch emulation Explicitly suppress userspace emulated MMIO exits that are triggered when emulating a task switch as KVM doesn't support userspace MMIO during complex (multi-step) emulation Silently ignoring the exit request can result in the WARN_ON_ONCE(vcpu->mmio_needed) firing if KVM exits to userspace for some other reason prior to purging mmio_needed See commit 0dc9022 ("KVM: x86: Suppress pending MMIO write exits if emulator detects exception") for more details on KVM's limitations with respect to emulated MMIO during complex emulator flows Generic: - Rename the AS_UNMOVABLE flag that was introduced for KVM to AS_INACCESSIBLE, because the special casing needed by these pages is not due to just unmovability (and in fact they are only unmovable because the CPU cannot access them) - New ioctl to populate the KVM page tables in advance, which is useful to mitigate KVM page faults during guest boot or after live migration. The code will also be used by TDX, but (probably) not through the ioctl - Enable halt poll shrinking by default, as Intel found it to be a clear win - Setup empty IRQ routing when creating a VM to avoid having to synchronize SRCU when creating a split IRQCHIP on x86 - Rework the sched_in/out() paths to replace kvm_arch_sched_in() with a flag that arch code can use for hooking both sched_in() and sched_out() - Take the vCPU @id as an "unsigned long" instead of "u32" to avoid truncating a bogus value from userspace, e.g. to help userspace detect bugs - Mark a vCPU as preempted if and only if it's scheduled out while in the KVM_RUN loop, e.g. to avoid marking it preempted and thus writing guest memory when retrieving guest state during live migration blackout Selftests: - Remove dead code in the memslot modification stress test - Treat "branch instructions retired" as supported on all AMD Family 17h+ CPUs - Print the guest pseudo-RNG seed only when it changes, to avoid spamming the log for tests that create lots of VMs - Make the PMU counters test less flaky when counting LLC cache misses by doing CLFLUSH{OPT} in every loop iteration" * tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm: (227 commits) crypto: ccp: Add the SNP_VLEK_LOAD command KVM: x86/pmu: Add kvm_pmu_call() to simplify static calls of kvm_pmu_ops KVM: x86: Introduce kvm_x86_call() to simplify static calls of kvm_x86_ops KVM: x86: Replace static_call_cond() with static_call() KVM: SEV: Provide support for SNP_EXTENDED_GUEST_REQUEST NAE event x86/sev: Move sev_guest.h into common SEV header KVM: SEV: Provide support for SNP_GUEST_REQUEST NAE event KVM: x86: Suppress MMIO that is triggered during task switch emulation KVM: x86/mmu: Clean up make_huge_page_split_spte() definition and intro KVM: x86/mmu: Bug the VM if KVM tries to split a !hugepage SPTE KVM: selftests: x86: Add test for KVM_PRE_FAULT_MEMORY KVM: x86: Implement kvm_arch_vcpu_pre_fault_memory() KVM: x86/mmu: Make kvm_mmu_do_page_fault() return mapped level KVM: x86/mmu: Account pf_{fixed,emulate,spurious} in callers of "do page fault" KVM: x86/mmu: Bump pf_taken stat only in the "real" page fault handler KVM: Add KVM_PRE_FAULT_MEMORY vcpu ioctl to pre-populate guest memory KVM: Document KVM_PRE_FAULT_MEMORY ioctl mm, virt: merge AS_UNMOVABLE and AS_INACCESSIBLE perf kvm: Add kvm-stat for loongarch64 LoongArch: KVM: Add PV steal time support in guest side ...
2 parents c43a20e + 332d2c1 commit 2c9b351

File tree

163 files changed

+7757
-2322
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

163 files changed

+7757
-2322
lines changed

Documentation/admin-guide/kernel-parameters.txt

Lines changed: 21 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2722,6 +2722,24 @@
27222722
[KVM,ARM,EARLY] Allow use of GICv4 for direct
27232723
injection of LPIs.
27242724

2725+
kvm-arm.wfe_trap_policy=
2726+
[KVM,ARM] Control when to set WFE instruction trap for
2727+
KVM VMs. Traps are allowed but not guaranteed by the
2728+
CPU architecture.
2729+
2730+
trap: set WFE instruction trap
2731+
2732+
notrap: clear WFE instruction trap
2733+
2734+
kvm-arm.wfi_trap_policy=
2735+
[KVM,ARM] Control when to set WFI instruction trap for
2736+
KVM VMs. Traps are allowed but not guaranteed by the
2737+
CPU architecture.
2738+
2739+
trap: set WFI instruction trap
2740+
2741+
notrap: clear WFI instruction trap
2742+
27252743
kvm_cma_resv_ratio=n [PPC,EARLY]
27262744
Reserves given percentage from system memory area for
27272745
contiguous memory allocation for KVM hash pagetable
@@ -4036,9 +4054,9 @@
40364054
prediction) vulnerability. System may allow data
40374055
leaks with this option.
40384056

4039-
no-steal-acc [X86,PV_OPS,ARM64,PPC/PSERIES,RISCV,EARLY] Disable
4040-
paravirtualized steal time accounting. steal time is
4041-
computed, but won't influence scheduler behaviour
4057+
no-steal-acc [X86,PV_OPS,ARM64,PPC/PSERIES,RISCV,LOONGARCH,EARLY]
4058+
Disable paravirtualized steal time accounting. steal time
4059+
is computed, but won't influence scheduler behaviour
40424060

40434061
nosync [HW,M68K] Disables sync negotiation for all devices.
40444062

Documentation/virt/coco/sev-guest.rst

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -176,6 +176,25 @@ to SNP_CONFIG command defined in the SEV-SNP spec. The current values of
176176
the firmware parameters affected by this command can be queried via
177177
SNP_PLATFORM_STATUS.
178178

179+
2.7 SNP_VLEK_LOAD
180+
-----------------
181+
:Technology: sev-snp
182+
:Type: hypervisor ioctl cmd
183+
:Parameters (in): struct sev_user_data_snp_vlek_load
184+
:Returns (out): 0 on success, -negative on error
185+
186+
When requesting an attestation report a guest is able to specify whether
187+
it wants SNP firmware to sign the report using either a Versioned Chip
188+
Endorsement Key (VCEK), which is derived from chip-unique secrets, or a
189+
Versioned Loaded Endorsement Key (VLEK) which is obtained from an AMD
190+
Key Derivation Service (KDS) and derived from seeds allocated to
191+
enrolled cloud service providers.
192+
193+
In the case of VLEK keys, the SNP_VLEK_LOAD SNP command is used to load
194+
them into the system after obtaining them from the KDS, and corresponds
195+
closely to the SNP_VLEK_LOAD firmware command specified in the SEV-SNP
196+
spec.
197+
179198
3. SEV-SNP CPUID Enforcement
180199
============================
181200

Documentation/virt/kvm/api.rst

Lines changed: 138 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -891,12 +891,12 @@ like this::
891891

892892
The irq_type field has the following values:
893893

894-
- irq_type[0]:
894+
- KVM_ARM_IRQ_TYPE_CPU:
895895
out-of-kernel GIC: irq_id 0 is IRQ, irq_id 1 is FIQ
896-
- irq_type[1]:
896+
- KVM_ARM_IRQ_TYPE_SPI:
897897
in-kernel GIC: SPI, irq_id between 32 and 1019 (incl.)
898898
(the vcpu_index field is ignored)
899-
- irq_type[2]:
899+
- KVM_ARM_IRQ_TYPE_PPI:
900900
in-kernel GIC: PPI, irq_id between 16 and 31 (incl.)
901901

902902
(The irq_id field thus corresponds nicely to the IRQ ID in the ARM GIC specs)
@@ -1403,6 +1403,12 @@ Instead, an abort (data abort if the cause of the page-table update
14031403
was a load or a store, instruction abort if it was an instruction
14041404
fetch) is injected in the guest.
14051405

1406+
S390:
1407+
^^^^^
1408+
1409+
Returns -EINVAL if the VM has the KVM_VM_S390_UCONTROL flag set.
1410+
Returns -EINVAL if called on a protected VM.
1411+
14061412
4.36 KVM_SET_TSS_ADDR
14071413
---------------------
14081414

@@ -1921,7 +1927,7 @@ flags:
19211927

19221928
If KVM_MSI_VALID_DEVID is set, devid contains a unique device identifier
19231929
for the device that wrote the MSI message. For PCI, this is usually a
1924-
BFD identifier in the lower 16 bits.
1930+
BDF identifier in the lower 16 bits.
19251931

19261932
On x86, address_hi is ignored unless the KVM_X2APIC_API_USE_32BIT_IDS
19271933
feature of KVM_CAP_X2APIC_API capability is enabled. If it is enabled,
@@ -2989,7 +2995,7 @@ flags:
29892995

29902996
If KVM_MSI_VALID_DEVID is set, devid contains a unique device identifier
29912997
for the device that wrote the MSI message. For PCI, this is usually a
2992-
BFD identifier in the lower 16 bits.
2998+
BDF identifier in the lower 16 bits.
29932999

29943000
On x86, address_hi is ignored unless the KVM_X2APIC_API_USE_32BIT_IDS
29953001
feature of KVM_CAP_X2APIC_API capability is enabled. If it is enabled,
@@ -6276,6 +6282,12 @@ state. At VM creation time, all memory is shared, i.e. the PRIVATE attribute
62766282
is '0' for all gfns. Userspace can control whether memory is shared/private by
62776283
toggling KVM_MEMORY_ATTRIBUTE_PRIVATE via KVM_SET_MEMORY_ATTRIBUTES as needed.
62786284

6285+
S390:
6286+
^^^^^
6287+
6288+
Returns -EINVAL if the VM has the KVM_VM_S390_UCONTROL flag set.
6289+
Returns -EINVAL if called on a protected VM.
6290+
62796291
4.141 KVM_SET_MEMORY_ATTRIBUTES
62806292
-------------------------------
62816293

@@ -6355,6 +6367,61 @@ a single guest_memfd file, but the bound ranges must not overlap).
63556367

63566368
See KVM_SET_USER_MEMORY_REGION2 for additional details.
63576369

6370+
4.143 KVM_PRE_FAULT_MEMORY
6371+
------------------------
6372+
6373+
:Capability: KVM_CAP_PRE_FAULT_MEMORY
6374+
:Architectures: none
6375+
:Type: vcpu ioctl
6376+
:Parameters: struct kvm_pre_fault_memory (in/out)
6377+
:Returns: 0 if at least one page is processed, < 0 on error
6378+
6379+
Errors:
6380+
6381+
========== ===============================================================
6382+
EINVAL The specified `gpa` and `size` were invalid (e.g. not
6383+
page aligned, causes an overflow, or size is zero).
6384+
ENOENT The specified `gpa` is outside defined memslots.
6385+
EINTR An unmasked signal is pending and no page was processed.
6386+
EFAULT The parameter address was invalid.
6387+
EOPNOTSUPP Mapping memory for a GPA is unsupported by the
6388+
hypervisor, and/or for the current vCPU state/mode.
6389+
EIO unexpected error conditions (also causes a WARN)
6390+
========== ===============================================================
6391+
6392+
::
6393+
6394+
struct kvm_pre_fault_memory {
6395+
/* in/out */
6396+
__u64 gpa;
6397+
__u64 size;
6398+
/* in */
6399+
__u64 flags;
6400+
__u64 padding[5];
6401+
};
6402+
6403+
KVM_PRE_FAULT_MEMORY populates KVM's stage-2 page tables used to map memory
6404+
for the current vCPU state. KVM maps memory as if the vCPU generated a
6405+
stage-2 read page fault, e.g. faults in memory as needed, but doesn't break
6406+
CoW. However, KVM does not mark any newly created stage-2 PTE as Accessed.
6407+
6408+
In some cases, multiple vCPUs might share the page tables. In this
6409+
case, the ioctl can be called in parallel.
6410+
6411+
When the ioctl returns, the input values are updated to point to the
6412+
remaining range. If `size` > 0 on return, the caller can just issue
6413+
the ioctl again with the same `struct kvm_map_memory` argument.
6414+
6415+
Shadow page tables cannot support this ioctl because they
6416+
are indexed by virtual address or nested guest physical address.
6417+
Calling this ioctl when the guest is using shadow page tables (for
6418+
example because it is running a nested guest with nested page tables)
6419+
will fail with `EOPNOTSUPP` even if `KVM_CHECK_EXTENSION` reports
6420+
the capability to be present.
6421+
6422+
`flags` must currently be zero.
6423+
6424+
63586425
5. The kvm_run structure
63596426
========================
63606427

@@ -6419,9 +6486,12 @@ More architecture-specific flags detailing state of the VCPU that may
64196486
affect the device's behavior. Current defined flags::
64206487

64216488
/* x86, set if the VCPU is in system management mode */
6422-
#define KVM_RUN_X86_SMM (1 << 0)
6489+
#define KVM_RUN_X86_SMM (1 << 0)
64236490
/* x86, set if bus lock detected in VM */
6424-
#define KVM_RUN_BUS_LOCK (1 << 1)
6491+
#define KVM_RUN_X86_BUS_LOCK (1 << 1)
6492+
/* x86, set if the VCPU is executing a nested (L2) guest */
6493+
#define KVM_RUN_X86_GUEST_MODE (1 << 2)
6494+
64256495
/* arm64, set for KVM_EXIT_DEBUG */
64266496
#define KVM_DEBUG_ARCH_HSR_HIGH_VALID (1 << 0)
64276497

@@ -7767,29 +7837,31 @@ Valid bits in args[0] are::
77677837
#define KVM_BUS_LOCK_DETECTION_OFF (1 << 0)
77687838
#define KVM_BUS_LOCK_DETECTION_EXIT (1 << 1)
77697839

7770-
Enabling this capability on a VM provides userspace with a way to select
7771-
a policy to handle the bus locks detected in guest. Userspace can obtain
7772-
the supported modes from the result of KVM_CHECK_EXTENSION and define it
7773-
through the KVM_ENABLE_CAP.
7840+
Enabling this capability on a VM provides userspace with a way to select a
7841+
policy to handle the bus locks detected in guest. Userspace can obtain the
7842+
supported modes from the result of KVM_CHECK_EXTENSION and define it through
7843+
the KVM_ENABLE_CAP. The supported modes are mutually-exclusive.
77747844

7775-
KVM_BUS_LOCK_DETECTION_OFF and KVM_BUS_LOCK_DETECTION_EXIT are supported
7776-
currently and mutually exclusive with each other. More bits can be added in
7777-
the future.
7845+
This capability allows userspace to force VM exits on bus locks detected in the
7846+
guest, irrespective whether or not the host has enabled split-lock detection
7847+
(which triggers an #AC exception that KVM intercepts). This capability is
7848+
intended to mitigate attacks where a malicious/buggy guest can exploit bus
7849+
locks to degrade the performance of the whole system.
77787850

7779-
With KVM_BUS_LOCK_DETECTION_OFF set, bus locks in guest will not cause vm exits
7780-
so that no additional actions are needed. This is the default mode.
7851+
If KVM_BUS_LOCK_DETECTION_OFF is set, KVM doesn't force guest bus locks to VM
7852+
exit, although the host kernel's split-lock #AC detection still applies, if
7853+
enabled.
77817854

7782-
With KVM_BUS_LOCK_DETECTION_EXIT set, vm exits happen when bus lock detected
7783-
in VM. KVM just exits to userspace when handling them. Userspace can enforce
7784-
its own throttling or other policy based mitigations.
7855+
If KVM_BUS_LOCK_DETECTION_EXIT is set, KVM enables a CPU feature that ensures
7856+
bus locks in the guest trigger a VM exit, and KVM exits to userspace for all
7857+
such VM exits, e.g. to allow userspace to throttle the offending guest and/or
7858+
apply some other policy-based mitigation. When exiting to userspace, KVM sets
7859+
KVM_RUN_X86_BUS_LOCK in vcpu-run->flags, and conditionally sets the exit_reason
7860+
to KVM_EXIT_X86_BUS_LOCK.
77857861

7786-
This capability is aimed to address the thread that VM can exploit bus locks to
7787-
degree the performance of the whole system. Once the userspace enable this
7788-
capability and select the KVM_BUS_LOCK_DETECTION_EXIT mode, KVM will set the
7789-
KVM_RUN_BUS_LOCK flag in vcpu-run->flags field and exit to userspace. Concerning
7790-
the bus lock vm exit can be preempted by a higher priority VM exit, the exit
7791-
notifications to userspace can be KVM_EXIT_BUS_LOCK or other reasons.
7792-
KVM_RUN_BUS_LOCK flag is used to distinguish between them.
7862+
Note! Detected bus locks may be coincident with other exits to userspace, i.e.
7863+
KVM_RUN_X86_BUS_LOCK should be checked regardless of the primary exit reason if
7864+
userspace wants to take action on all detected bus locks.
77937865

77947866
7.23 KVM_CAP_PPC_DAWR1
77957867
----------------------
@@ -7905,10 +7977,10 @@ perform a bulk copy of tags to/from the guest.
79057977
7.29 KVM_CAP_VM_MOVE_ENC_CONTEXT_FROM
79067978
-------------------------------------
79077979

7908-
Architectures: x86 SEV enabled
7909-
Type: vm
7910-
Parameters: args[0] is the fd of the source vm
7911-
Returns: 0 on success
7980+
:Architectures: x86 SEV enabled
7981+
:Type: vm
7982+
:Parameters: args[0] is the fd of the source vm
7983+
:Returns: 0 on success
79127984

79137985
This capability enables userspace to migrate the encryption context from the VM
79147986
indicated by the fd to the VM this is called on.
@@ -7956,7 +8028,11 @@ The valid bits in cap.args[0] are:
79568028
When this quirk is disabled, the reset value
79578029
is 0x10000 (APIC_LVT_MASKED).
79588030

7959-
KVM_X86_QUIRK_CD_NW_CLEARED By default, KVM clears CR0.CD and CR0.NW.
8031+
KVM_X86_QUIRK_CD_NW_CLEARED By default, KVM clears CR0.CD and CR0.NW on
8032+
AMD CPUs to workaround buggy guest firmware
8033+
that runs in perpetuity with CR0.CD, i.e.
8034+
with caches in "no fill" mode.
8035+
79608036
When this quirk is disabled, KVM does not
79618037
change the value of CR0.CD and CR0.NW.
79628038

@@ -8073,6 +8149,37 @@ error/annotated fault.
80738149

80748150
See KVM_EXIT_MEMORY_FAULT for more information.
80758151

8152+
7.35 KVM_CAP_X86_APIC_BUS_CYCLES_NS
8153+
-----------------------------------
8154+
8155+
:Architectures: x86
8156+
:Target: VM
8157+
:Parameters: args[0] is the desired APIC bus clock rate, in nanoseconds
8158+
:Returns: 0 on success, -EINVAL if args[0] contains an invalid value for the
8159+
frequency or if any vCPUs have been created, -ENXIO if a virtual
8160+
local APIC has not been created using KVM_CREATE_IRQCHIP.
8161+
8162+
This capability sets the VM's APIC bus clock frequency, used by KVM's in-kernel
8163+
virtual APIC when emulating APIC timers. KVM's default value can be retrieved
8164+
by KVM_CHECK_EXTENSION.
8165+
8166+
Note: Userspace is responsible for correctly configuring CPUID 0x15, a.k.a. the
8167+
core crystal clock frequency, if a non-zero CPUID 0x15 is exposed to the guest.
8168+
8169+
7.36 KVM_CAP_X86_GUEST_MODE
8170+
------------------------------
8171+
8172+
:Architectures: x86
8173+
:Returns: Informational only, -EINVAL on direct KVM_ENABLE_CAP.
8174+
8175+
The presence of this capability indicates that KVM_RUN will update the
8176+
KVM_RUN_X86_GUEST_MODE bit in kvm_run.flags to indicate whether the
8177+
vCPU was executing nested guest code when it exited.
8178+
8179+
KVM exits with the register state of either the L1 or L2 guest
8180+
depending on which executed at the time of an exit. Userspace must
8181+
take care to differentiate between these cases.
8182+
80768183
8. Other capabilities.
80778184
======================
80788185

Documentation/virt/kvm/devices/arm-vgic.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ Groups:
3131
KVM_VGIC_V2_ADDR_TYPE_CPU (rw, 64-bit)
3232
Base address in the guest physical address space of the GIC virtual cpu
3333
interface register mappings. Only valid for KVM_DEV_TYPE_ARM_VGIC_V2.
34-
This address needs to be 4K aligned and the region covers 4 KByte.
34+
This address needs to be 4K aligned and the region covers 8 KByte.
3535

3636
Errors:
3737

Documentation/virt/kvm/halt-polling.rst

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -79,11 +79,11 @@ adjustment of the polling interval.
7979
Module Parameters
8080
=================
8181

82-
The kvm module has 3 tuneable module parameters to adjust the global max
83-
polling interval as well as the rate at which the polling interval is grown and
84-
shrunk. These variables are defined in include/linux/kvm_host.h and as module
85-
parameters in virt/kvm/kvm_main.c, or arch/powerpc/kvm/book3s_hv.c in the
86-
powerpc kvm-hv case.
82+
The kvm module has 4 tunable module parameters to adjust the global max polling
83+
interval, the initial value (to grow from 0), and the rate at which the polling
84+
interval is grown and shrunk. These variables are defined in
85+
include/linux/kvm_host.h and as module parameters in virt/kvm/kvm_main.c, or
86+
arch/powerpc/kvm/book3s_hv.c in the powerpc kvm-hv case.
8787

8888
+-----------------------+---------------------------+-------------------------+
8989
|Module Parameter | Description | Default Value |
@@ -105,7 +105,7 @@ powerpc kvm-hv case.
105105
| | grow_halt_poll_ns() | |
106106
| | function. | |
107107
+-----------------------+---------------------------+-------------------------+
108-
|halt_poll_ns_shrink | The value by which the | 0 |
108+
|halt_poll_ns_shrink | The value by which the | 2 |
109109
| | halt polling interval is | |
110110
| | divided in the | |
111111
| | shrink_halt_poll_ns() | |

0 commit comments

Comments
 (0)