docs: clarify KVM related kernel parameters' descriptions
authorYan-Jie Wang <yanjiewtw@gmail.com>
Wed, 3 May 2023 08:15:31 +0000 (16:15 +0800)
committerJonathan Corbet <corbet@lwn.net>
Fri, 19 May 2023 14:56:30 +0000 (08:56 -0600)
The descriptions of certain KVM related kernel parameters can be
confusing. They state "Disable ...," which may make people think that
setting them to 1 will disable the associated feature when in fact the
opposite is true.

This commit addresses this issue by revising the descriptions of these
parameters by using "Control..." rather than "Enable/Disable...".
1==enabled or 0==disabled can be communicated by the description of
default value such as "1 (enabled)" or "0 (disabled)".

Also update the description of KVM's default value for kvm-intel.nested
as it is enabled by default.

Signed-off-by: Yan-Jie Wang <yanjiewtw@gmail.com>
Signed-off-by: Jonathan Corbet <corbet@lwn.net>
Link: https://lore.kernel.org/r/20230503081530.19956-1-yanjiewtw@gmail.com
Documentation/admin-guide/kernel-parameters.txt

index 430d0ef..b0e4195 100644 (file)
                        If the value is 0 (the default), KVM will pick a period based
                        on the ratio, such that a page is zapped after 1 hour on average.
 
-       kvm-amd.nested= [KVM,AMD] Allow nested virtualization in KVM/SVM.
-                       Default is 1 (enabled)
+       kvm-amd.nested= [KVM,AMD] Control nested virtualization feature in
+                       KVM/SVM. Default is 1 (enabled).
 
-       kvm-amd.npt=    [KVM,AMD] Disable nested paging (virtualized MMU)
-                       for all guests.
-                       Default is 1 (enabled) if in 64-bit or 32-bit PAE mode.
+       kvm-amd.npt=    [KVM,AMD] Control KVM's use of Nested Page Tables,
+                       a.k.a. Two-Dimensional Page Tables. Default is 1
+                       (enabled). Disable by KVM if hardware lacks support
+                       for NPT.
 
        kvm-arm.mode=
                        [KVM,ARM] Select one of KVM/arm64's modes of operation.
                        Format: <integer>
                        Default: 5
 
-       kvm-intel.ept=  [KVM,Intel] Disable extended page tables
-                       (virtualized MMU) support on capable Intel chips.
-                       Default is 1 (enabled)
+       kvm-intel.ept=  [KVM,Intel] Control KVM's use of Extended Page Tables,
+                       a.k.a. Two-Dimensional Page Tables.  Default is 1
+                       (enabled). Disable by KVM if hardware lacks support
+                       for EPT.
 
        kvm-intel.emulate_invalid_guest_state=
-                       [KVM,Intel] Disable emulation of invalid guest state.
-                       Ignored if kvm-intel.enable_unrestricted_guest=1, as
-                       guest state is never invalid for unrestricted guests.
-                       This param doesn't apply to nested guests (L2), as KVM
-                       never emulates invalid L2 guest state.
-                       Default is 1 (enabled)
+                       [KVM,Intel] Control whether to emulate invalid guest
+                       state. Ignored if kvm-intel.enable_unrestricted_guest=1,
+                       as guest state is never invalid for unrestricted
+                       guests. This param doesn't apply to nested guests (L2),
+                       as KVM never emulates invalid L2 guest state.
+                       Default is 1 (enabled).
 
        kvm-intel.flexpriority=
-                       [KVM,Intel] Disable FlexPriority feature (TPR shadow).
-                       Default is 1 (enabled)
+                       [KVM,Intel] Control KVM's use of FlexPriority feature
+                       (TPR shadow). Default is 1 (enabled). Disalbe by KVM if
+                       hardware lacks support for it.
 
        kvm-intel.nested=
-                       [KVM,Intel] Enable VMX nesting (nVMX).
-                       Default is 0 (disabled)
+                       [KVM,Intel] Control nested virtualization feature in
+                       KVM/VMX. Default is 1 (enabled).
 
        kvm-intel.unrestricted_guest=
-                       [KVM,Intel] Disable unrestricted guest feature
-                       (virtualized real and unpaged mode) on capable
-                       Intel chips. Default is 1 (enabled)
+                       [KVM,Intel] Control KVM's use of unrestricted guest
+                       feature (virtualized real and unpaged mode). Default
+                       is 1 (enabled). Disable by KVM if EPT is disabled or
+                       hardware lacks support for it.
 
        kvm-intel.vmentry_l1d_flush=[KVM,Intel] Mitigation for L1 Terminal Fault
                        CVE-2018-3620.
 
                        Default is cond (do L1 cache flush in specific instances)
 
-       kvm-intel.vpid= [KVM,Intel] Disable Virtual Processor Identification
-                       feature (tagged TLBs) on capable Intel chips.
-                       Default is 1 (enabled)
+       kvm-intel.vpid= [KVM,Intel] Control KVM's use of Virtual Processor
+                       Identification feature (tagged TLBs). Default is 1
+                       (enabled). Disable by KVM if hardware lacks support
+                       for it.
 
        l1d_flush=      [X86,INTEL]
                        Control mitigation for L1D based snooping vulnerability.