]> git.proxmox.com Git - mirror_ubuntu-bionic-kernel.git/blobdiff - Documentation/admin-guide/kernel-parameters.txt
UBUNTU: SAUCE: Synchronize MDS mitigations with upstream
[mirror_ubuntu-bionic-kernel.git] / Documentation / admin-guide / kernel-parameters.txt
index 905991745d261d88b74efa5261577c9f4c20225a..11bf7af493e18130da1a8d00da7e4d36e111d54e 100644 (file)
        amijoy.map=     [HW,JOY] Amiga joystick support
                        Map of devices attached to JOY0DAT and JOY1DAT
                        Format: <a>,<b>
-                       See also Documentation/input/joystick.txt
+                       See also Documentation/input/joydev/joystick.rst
 
        analog.map=     [HW,JOY] Analog joystick and gamepad support
                        Specifies type or capabilities of an analog joystick
                        not play well with APC CPU idle - disable it if you have
                        APC and your system crashes randomly.
 
-       apic=           [APIC,X86-32] Advanced Programmable Interrupt Controller
+       apic=           [APIC,X86] Advanced Programmable Interrupt Controller
                        Change the output verbosity whilst booting
                        Format: { quiet (default) | verbose | debug }
                        Change the amount of debugging information output
                        when initialising the APIC and IO-APIC components.
+                       For X86-32, this can also be used to specify an APIC
+                       driver name.
+                       Format: apic=driver_name
+                       Examples: apic=bigsmp
 
        apic_extnmi=    [APIC,X86] External NMI delivery setting
                        Format: { bsp (default) | all | none }
        bttv.card=      [HW,V4L] bttv (bt848 + bt878 based grabber cards)
        bttv.radio=     Most important insmod options are available as
                        kernel args too.
-       bttv.pll=       See Documentation/video4linux/bttv/Insmod-options
+       bttv.pll=       See Documentation/media/v4l-drivers/bttv.rst
        bttv.tuner=
 
        bulk_remove=off [PPC]  This parameter disables the use of the pSeries
                For now, only VisioBraille is supported.
 
        consoleblank=   [KNL] The console blank (screen saver) timeout in
-                       seconds. Defaults to 10*60 = 10mins. A value of 0
-                       disables the blank timer.
+                       seconds. A value of 0 disables the blank timer.
+                       Defaults to 0.
 
        coredump_filter=
                        [KNL] Change the default value for
                        0: default value, disable debugging
                        1: enable debugging at boot time
 
+       cpufreq_driver= [X86] Allow only the named cpu frequency scaling driver
+                       to register. Example: cpufreq_driver=powernow-k8
+                       Format: { none | STRING }
+
        cpuidle.off=1   [CPU_IDLE]
                        disable the cpuidle sub-system
 
        db9.dev[2|3]=   [HW,JOY] Multisystem joystick support via parallel port
                        (one device per port)
                        Format: <port#>,<type>
-                       See also Documentation/input/joystick-parport.txt
+                       See also Documentation/input/devices/joystick-parport.rst
 
        ddebug_query=   [KNL,DYNAMIC_DEBUG] Enable debug messages at early boot
                        time. See
                        The filter can be disabled or changed to another
                        driver later using sysfs.
 
-       drm_kms_helper.edid_firmware=[<connector>:]<file>[,[<connector>:]<file>]
+       drm.edid_firmware=[<connector>:]<file>[,[<connector>:]<file>]
                        Broken monitors, graphic adapters, KVMs and EDIDless
                        panels may send no or incorrect EDID data sets.
                        This parameter allows to specify an EDID data sets
                        [HW,JOY] Multisystem joystick and NES/SNES/PSX pad
                        support via parallel port (up to 5 devices per port)
                        Format: <port#>,<pad1>,<pad2>,<pad3>,<pad4>,<pad5>
-                       See also Documentation/input/joystick-parport.txt
+                       See also Documentation/input/devices/joystick-parport.rst
 
        gamma=          [HW,DRM]
 
                nobypass        [PPC/POWERNV]
                        Disable IOMMU bypass, using IOMMU for PCI devices.
 
+       iommu.strict=   [ARM64] Configure TLB invalidation behaviour
+                       Format: { "0" | "1" }
+                       0 - Lazy mode.
+                         Request that DMA unmap operations use deferred
+                         invalidation of hardware TLBs, for increased
+                         throughput at the cost of reduced device isolation.
+                         Will fall back to strict mode if not supported by
+                         the relevant IOMMU driver.
+                       1 - Strict mode (default).
+                         DMA unmap operations invalidate IOMMU hardware TLBs
+                         synchronously.
+
        iommu.passthrough=
                        [ARM64] Configure DMA to bypass the IOMMU by default.
                        Format: { "0" | "1" }
        irqaffinity=    [SMP] Set the default irq affinity mask
                        The argument is a cpu list, as described above.
 
+       irqchip.gicv2_force_probe=
+                       [ARM, ARM64]
+                       Format: <bool>
+                       Force the kernel to look for the second 4kB page
+                       of a GICv2 controller even if the memory range
+                       exposed by the device tree is too small.
+
        irqfixup        [HW]
                        When an interrupt is not handled search all handlers
                        for it. Intended to get systems with badly broken
        isapnp=         [ISAPNP]
                        Format: <RDP>,<reset>,<pci_scan>,<verbosity>
 
-       isolcpus=       [KNL,SMP] Isolate CPUs from the general scheduler.
-                       The argument is a cpu list, as described above.
+       isolcpus=       [KNL,SMP,ISOL] Isolate a given set of CPUs from disturbance.
+                       [Deprecated - use cpusets instead]
+                       Format: [flag-list,]<cpu-list>
+
+                       Specify one or more CPUs to isolate from disturbances
+                       specified in the flag list (default: domain):
+
+                       nohz
+                         Disable the tick when a single task runs.
+                       domain
+                         Isolate from the general SMP balancing and scheduling
+                         algorithms. Note that performing domain isolation this way
+                         is irreversible: it's not possible to bring back a CPU to
+                         the domains once isolated through isolcpus. It's strongly
+                         advised to use cpusets instead to disable scheduler load
+                         balancing through the "cpuset.sched_load_balance" file.
+                         It offers a much more flexible interface where CPUs can
+                         move in and out of an isolated set anytime.
+
+                         You can move a process onto or off an "isolated" CPU via
+                         the CPU affinity syscalls or cpuset.
+                         <cpu number> begins at 0 and the maximum value is
+                         "number of CPUs in system - 1".
+
+                       The format of <cpu-list> is described above.
 
-                       This option can be used to specify one or more CPUs
-                       to isolate from the general SMP balancing and scheduling
-                       algorithms. You can move a process onto or off an
-                       "isolated" CPU via the CPU affinity syscalls or cpuset.
-                       <cpu number> begins at 0 and the maximum value is
-                       "number of CPUs in system - 1".
 
-                       This option is the preferred way to isolate CPUs. The
-                       alternative -- manually setting the CPU mask of all
-                       tasks in the system -- can cause problems and
-                       suboptimal load balancer performance.
 
        iucv=           [HW,NET]
 
                                ivrs_acpihid[00:14.5]=AMD0020:0
 
        js=             [HW,JOY] Analog joystick
-                       See Documentation/input/joystick.txt.
+                       See Documentation/input/joydev/joystick.rst.
 
        nokaslr         [KNL]
                        When CONFIG_RANDOMIZE_BASE is set, this disables
                        Built with CONFIG_DEBUG_KMEMLEAK_DEFAULT_OFF=y,
                        the default is off.
 
-       kmemcheck=      [X86] Boot-time kmemcheck enable/disable/one-shot mode
-                       Valid arguments: 0, 1, 2
-                       kmemcheck=0 (disabled)
-                       kmemcheck=1 (enabled)
-                       kmemcheck=2 (one-shot mode)
-                       Default: 2 (one-shot mode)
-
        kvm.ignore_msrs=[KVM] Ignore guest accesses to unhandled MSRs.
                        Default is 0 (don't ignore, but inject #GP)
 
                        [KVM,ARM] Trap guest accesses to GICv3 common
                        system registers
 
+       kvm-arm.vgic_v4_enable=
+                       [KVM,ARM] Allow use of GICv4 for direct injection of
+                       LPIs.
+
        kvm-intel.ept=  [KVM,Intel] Disable extended page tables
                        (virtualized MMU) support on capable Intel chips.
                        Default is 1 (enabled)
                        (virtualized real and unpaged mode) on capable
                        Intel chips. Default is 1 (enabled)
 
+       kvm-intel.vmentry_l1d_flush=[KVM,Intel] Mitigation for L1 Terminal Fault
+                       CVE-2018-3620.
+
+                       Valid arguments: never, cond, always
+
+                       always: L1D cache flush on every VMENTER.
+                       cond:   Flush L1D on VMENTER only when the code between
+                               VMEXIT and VMENTER can leak host memory.
+                       never:  Disables the mitigation
+
+                       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)
 
+       l1tf=           [X86] Control mitigation of the L1TF vulnerability on
+                             affected CPUs
+
+                       The kernel PTE inversion protection is unconditionally
+                       enabled and cannot be disabled.
+
+                       full
+                               Provides all available mitigations for the
+                               L1TF vulnerability. Disables SMT and
+                               enables all mitigations in the
+                               hypervisors, i.e. unconditional L1D flush.
+
+                               SMT control and L1D flush control via the
+                               sysfs interface is still possible after
+                               boot.  Hypervisors will issue a warning
+                               when the first VM is started in a
+                               potentially insecure configuration,
+                               i.e. SMT enabled or L1D flush disabled.
+
+                       full,force
+                               Same as 'full', but disables SMT and L1D
+                               flush runtime control. Implies the
+                               'nosmt=force' command line option.
+                               (i.e. sysfs control of SMT is disabled.)
+
+                       flush
+                               Leaves SMT enabled and enables the default
+                               hypervisor mitigation, i.e. conditional
+                               L1D flush.
+
+                               SMT control and L1D flush control via the
+                               sysfs interface is still possible after
+                               boot.  Hypervisors will issue a warning
+                               when the first VM is started in a
+                               potentially insecure configuration,
+                               i.e. SMT enabled or L1D flush disabled.
+
+                       flush,nosmt
+
+                               Disables SMT and enables the default
+                               hypervisor mitigation.
+
+                               SMT control and L1D flush control via the
+                               sysfs interface is still possible after
+                               boot.  Hypervisors will issue a warning
+                               when the first VM is started in a
+                               potentially insecure configuration,
+                               i.e. SMT enabled or L1D flush disabled.
+
+                       flush,nowarn
+                               Same as 'flush', but hypervisors will not
+                               warn when a VM is started in a potentially
+                               insecure configuration.
+
+                       off
+                               Disables hypervisor mitigations and doesn't
+                               emit any warnings.
+
+                       Default is 'flush'.
+
+                       For details see: Documentation/admin-guide/hw-vuln/l1tf.rst
+
        l2cr=           [PPC]
 
        l3cr=           [PPC]
                        Format: <first>,<last>
                        Specifies range of consoles to be captured by the MDA.
 
+       mds=            [X86,INTEL]
+                       Control mitigation for the Micro-architectural Data
+                       Sampling (MDS) vulnerability.
+
+                       Certain CPUs are vulnerable to an exploit against CPU
+                       internal buffers which can forward information to a
+                       disclosure gadget under certain conditions.
+
+                       In vulnerable processors, the speculatively
+                       forwarded data can be used in a cache side channel
+                       attack, to access data to which the attacker does
+                       not have direct access.
+
+                       This parameter controls the MDS mitigation. The
+                       options are:
+
+                       full       - Enable MDS mitigation on vulnerable CPUs
+                       full,nosmt - Enable MDS mitigation and disable
+                                    SMT on vulnerable CPUs
+                       off        - Unconditionally disable MDS mitigation
+
+                       Not specifying this option is equivalent to
+                       mds=full.
+
+                       For details see: Documentation/admin-guide/hw-vuln/mds.rst
+
        mem=nn[KMG]     [KNL,BOOT] Force usage of a specific amount of memory
                        Amount of memory to be used when the kernel is not able
                        to see the whole system memory or for test.
                        s2idle  - Suspend-To-Idle
                        shallow - Power-On Suspend or equivalent (if supported)
                        deep    - Suspend-To-RAM or equivalent (if supported)
-                       See Documentation/power/states.txt.
+                       See Documentation/admin-guide/pm/sleep-states.rst.
 
        meye.*=         [HW] Set MotionEye Camera parameters
-                       See Documentation/video4linux/meye.txt.
+                       See Documentation/media/v4l-drivers/meye.rst.
 
        mfgpt_irq=      [IA-32] Specify the IRQ to use for the
                        Multi-Function General Purpose Timers on AMD Geode
                        in the "bleeding edge" mini2440 support kernel at
                        http://repo.or.cz/w/linux-2.6/mini2440.git
 
+       mitigations=
+                       [X86,PPC,S390] Control optional mitigations for CPU
+                       vulnerabilities.  This is a set of curated,
+                       arch-independent options, each of which is an
+                       aggregation of existing arch-specific options.
+
+                       off
+                               Disable all optional CPU mitigations.  This
+                               improves system performance, but it may also
+                               expose users to several CPU vulnerabilities.
+                               Equivalent to: nopti [X86,PPC]
+                                              nospectre_v1 [PPC]
+                                              nobp=0 [S390]
+                                              nospectre_v2 [X86,PPC,S390]
+                                              spectre_v2_user=off [X86]
+                                              spec_store_bypass_disable=off [X86,PPC]
+                                              l1tf=off [X86]
+                                              mds=off [X86]
+
+                       auto (default)
+                               Mitigate all CPU vulnerabilities, but leave SMT
+                               enabled, even if it's vulnerable.  This is for
+                               users who don't want to be surprised by SMT
+                               getting disabled across kernel upgrades, or who
+                               have other ways of avoiding SMT-based attacks.
+                               Equivalent to: (default behavior)
+
+                       auto,nosmt
+                               Mitigate all CPU vulnerabilities, disabling SMT
+                               if needed.  This is for users who always want to
+                               be fully mitigated, even if it means losing SMT.
+                               Equivalent to: l1tf=flush,nosmt [X86]
+                                              mds=full,nosmt [X86]
+
        mminit_loglevel=
                        [KNL] When CONFIG_DEBUG_MEMORY_INIT is set, this
                        parameter allows control of the logging verbosity for
 
        noalign         [KNL,ARM]
 
+       noaltinstr      [S390] Disables alternative instructions patching
+                       (CPU alternatives feature).
+
        noapic          [SMP,APIC] Tells the kernel to not make use of any
                        IOAPICs that may be present in the system.
 
        nosmt           [KNL,S390] Disable symmetric multithreading (SMT).
                        Equivalent to smt=1.
 
+                       [KNL,x86] Disable symmetric multithreading (SMT).
+                       nosmt=force: Force disable SMT, cannot be undone
+                                    via the sysfs control file.
+
+       nospectre_v2    [X86] Disable all mitigations for the Spectre variant 2
+                       (indirect branch prediction) vulnerability. System may
+                       allow data leaks with this option, which is equivalent
+                       to spectre_v2=off.
+
+       nospec_store_bypass_disable
+                       [HW] Disable all mitigations for the Speculative Store Bypass vulnerability
+
        noxsave         [BUGS=X86] Disables x86 extended register state save
                        and restore using xsave. The kernel will fallback to
                        enabling legacy floating-point and sse state.
                        Valid arguments: on, off
                        Default: on
 
-       nohz_full=      [KNL,BOOT]
+       nohz_full=      [KNL,BOOT,SMP,ISOL]
                        The argument is a cpu list, as described above.
                        In kernels built with CONFIG_NO_HZ_FULL=y, set
                        the specified list of CPUs whose tick will be stopped
        norandmaps      Don't use address space randomization.  Equivalent to
                        echo 0 > /proc/sys/kernel/randomize_va_space
 
-       noreplace-paravirt      [X86,IA-64,PV_OPS] Don't patch paravirt_ops
-
        noreplace-smp   [X86-32,SMP] Don't replace SMP instructions
                        with UP alternatives
 
                nomsi           [MSI] If the PCI_MSI kernel config parameter is
                                enabled, this kernel boot option can be used to
                                disable the use of MSI interrupts system-wide.
+               clearmsi        [X86] Clears MSI/MSI-X enable bits early in boot
+                               time in order to avoid issues like adapters
+                               screaming irqs and preventing boot progress.
+                               Also, it enforces the PCI Local Bus spec
+                               rule that those bits should be 0 in system reset
+                               events (useful for kexec/kdump cases).
                noioapicquirk   [APIC] Disable all boot interrupt quirks.
                                Safety option to keep boot IRQs enabled. This
                                should never be necessary.
                pcie_scan_all   Scan all possible PCIe devices.  Otherwise we
                                only look for one device below a PCIe downstream
                                port.
+               big_root_window Try to add a big 64bit memory window to the PCIe
+                               root complex on AMD CPUs. Some GFX hardware
+                               can resize a BAR to allow access to all VRAM.
+                               Adding the window is slightly risky (it may
+                               conflict with unreported devices), so this
+                               taints the kernel.
 
        pcie_aspm=      [PCIE] Forcibly enable or disable PCIe Active State Power
                        Management.
 
        plip=           [PPT,NET] Parallel port network link
                        Format: { parport<nr> | timid | 0 }
-                       See also Documentation/parport.txt.
+                       See also Documentation/admin-guide/parport.rst.
 
        pmtmr=          [X86] Manual setup of pmtmr I/O Port.
                        Override pmtimer IOPort with a hex value.
                        allowed (eg kernel_enable_fpu()/kernel_disable_fpu()).
                        There is some performance impact when enabling this.
 
+       ppc_tm=         [PPC]
+                       Format: {"off"}
+                       Disable Hardware Transactional Memory
+
        print-fatal-signals=
                        [KNL] debug: print fatal signals
 
                        instead using the legacy FADT method
 
        profile=        [KNL] Enable kernel profiling via /proc/profile
-                       Format: [schedule,]<number>
+                       Format: [<profiletype>,]<number>
+                       Param: <profiletype>: "schedule", "sleep", or "kvm"
+                               [defaults to kernel profiling]
                        Param: "schedule" - profile schedule points.
-                       Param: <number> - step/bucket size as a power of 2 for
-                               statistical time based profiling.
                        Param: "sleep" - profile D-state sleeping (millisecs).
                                Requires CONFIG_SCHEDSTATS
                        Param: "kvm" - profile VM exits.
+                       Param: <number> - step/bucket size as a power of 2 for
+                               statistical time based profiling.
 
        prompt_ramdisk= [RAM] List of RAM disks to prompt for floppy disk
                        before loading.
        rcutorture.stall_cpu_holdoff= [KNL]
                        Time to wait (s) after boot before inducing stall.
 
+       rcutorture.stall_cpu_irqsoff= [KNL]
+                       Disable interrupts while stalling if set.
+
        rcutorture.stat_interval= [KNL]
                        Time (s) between statistics printk()s.
 
 
        rdt=            [HW,X86,RDT]
                        Turn on/off individual RDT features. List is:
-                       cmt, mbmtotal, mbmlocal, l3cat, l3cdp, l2cat, mba.
+                       cmt, mbmtotal, mbmlocal, l3cat, l3cdp, l2cat, l2cdp,
+                       mba.
                        E.g. to turn on cmt and turn off mba use:
                                rdt=cmt,!mba
 
                        [KNL] Should the soft-lockup detector generate panics.
                        Format: <integer>
 
+                       A nonzero value instructs the soft-lockup detector
+                       to panic the machine when a soft-lockup occurs. This
+                       is also controlled by CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC
+                       which is the respective build-time switch to that
+                       functionality.
+
        softlockup_all_cpu_backtrace=
                        [KNL] Should the soft-lockup detector generate
                        backtraces on all cpus.
        sonypi.*=       [HW] Sony Programmable I/O Control Device driver
                        See Documentation/laptops/sonypi.txt
 
+       spectre_v2=     [X86] Control mitigation of Spectre variant 2
+                       (indirect branch speculation) vulnerability.
+                       The default operation protects the kernel from
+                       user space attacks.
+
+                       on   - unconditionally enable, implies
+                              spectre_v2_user=on
+                       off  - unconditionally disable, implies
+                              spectre_v2_user=off
+                       auto - kernel detects whether your CPU model is
+                              vulnerable
+
+                       Selecting 'on' will, and 'auto' may, choose a
+                       mitigation method at run time according to the
+                       CPU, the available microcode, the setting of the
+                       CONFIG_RETPOLINE configuration option, and the
+                       compiler with which the kernel was built.
+
+                       Selecting 'on' will also enable the mitigation
+                       against user space to user space task attacks.
+
+                       Selecting 'off' will disable both the kernel and
+                       the user space protections.
+
+                       Specific mitigations can also be selected manually:
+
+                       retpoline         - replace indirect branches
+                       retpoline,generic - google's original retpoline
+                       retpoline,amd     - AMD-specific minimal thunk
+
+                       Not specifying this option is equivalent to
+                       spectre_v2=auto.
+
+       spectre_v2_user=
+                       [X86] Control mitigation of Spectre variant 2
+                       (indirect branch speculation) vulnerability between
+                       user space tasks
+
+                       on      - Unconditionally enable mitigations. Is
+                                 enforced by spectre_v2=on
+
+                       off     - Unconditionally disable mitigations. Is
+                                 enforced by spectre_v2=off
+
+                       prctl   - Indirect branch speculation is enabled,
+                                 but mitigation can be enabled via prctl
+                                 per thread.  The mitigation control state
+                                 is inherited on fork.
+
+                       prctl,ibpb
+                               - Like "prctl" above, but only STIBP is
+                                 controlled per thread. IBPB is issued
+                                 always when switching between different user
+                                 space processes.
+
+                       seccomp
+                               - Same as "prctl" above, but all seccomp
+                                 threads will enable the mitigation unless
+                                 they explicitly opt out.
+
+                       seccomp,ibpb
+                               - Like "seccomp" above, but only STIBP is
+                                 controlled per thread. IBPB is issued
+                                 always when switching between different
+                                 user space processes.
+
+                       auto    - Kernel selects the mitigation depending on
+                                 the available CPU features and vulnerability.
+
+                       Default mitigation:
+                       If CONFIG_SECCOMP=y then "seccomp", otherwise "prctl"
+
+                       Not specifying this option is equivalent to
+                       spectre_v2_user=auto.
+
+       spec_store_bypass_disable=
+                       [HW] Control Speculative Store Bypass (SSB) Disable mitigation
+                       (Speculative Store Bypass vulnerability)
+
+                       Certain CPUs are vulnerable to an exploit against a
+                       a common industry wide performance optimization known
+                       as "Speculative Store Bypass" in which recent stores
+                       to the same memory location may not be observed by
+                       later loads during speculative execution. The idea
+                       is that such stores are unlikely and that they can
+                       be detected prior to instruction retirement at the
+                       end of a particular speculation execution window.
+
+                       In vulnerable processors, the speculatively forwarded
+                       store can be used in a cache side channel attack, for
+                       example to read memory to which the attacker does not
+                       directly have access (e.g. inside sandboxed code).
+
+                       This parameter controls whether the Speculative Store
+                       Bypass optimization is used.
+
+                       on      - Unconditionally disable Speculative Store Bypass
+                       off     - Unconditionally enable Speculative Store Bypass
+                       auto    - Kernel detects whether the CPU model contains an
+                                 implementation of Speculative Store Bypass and
+                                 picks the most appropriate mitigation. If the
+                                 CPU is not vulnerable, "off" is selected. If the
+                                 CPU is vulnerable the default mitigation is
+                                 architecture and Kconfig dependent. See below.
+                       prctl   - Control Speculative Store Bypass per thread
+                                 via prctl. Speculative Store Bypass is enabled
+                                 for a process by default. The state of the control
+                                 is inherited on fork.
+                       seccomp - Same as "prctl" above, but all seccomp threads
+                                 will disable SSB unless they explicitly opt out.
+
+                       Not specifying this option is equivalent to
+                       spec_store_bypass_disable=auto.
+
+                       Default mitigations:
+                       X86:    If CONFIG_SECCOMP=y "seccomp", otherwise "prctl"
+
        spia_io_base=   [HW,MTD]
        spia_fio_base=
        spia_pedr=
                        expediting.  Set to zero to disable automatic
                        expediting.
 
+       ssbd=           [ARM64,HW]
+                       Speculative Store Bypass Disable control
+
+                       On CPUs that are vulnerable to the Speculative
+                       Store Bypass vulnerability and offer a
+                       firmware based mitigation, this parameter
+                       indicates how the mitigation should be used:
+
+                       force-on:  Unconditionally enable mitigation for
+                                  for both kernel and userspace
+                       force-off: Unconditionally disable mitigation for
+                                  for both kernel and userspace
+                       kernel:    Always enable mitigation in the
+                                  kernel, and offer a prctl interface
+                                  to allow userspace to register its
+                                  interest in being mitigated too.
+
        stack_guard_gap=        [MM]
                        override the default stack gap protection. The value
                        is in page units and it defines how many pages prior
                        Used to run time disable IRQ_TIME_ACCOUNTING on any
                        platforms where RDTSC is slow and this accounting
                        can add overhead.
+                       [x86] unstable: mark the TSC clocksource as unstable, this
+                       marks the TSC unconditionally unstable at bootup and
+                       avoids any further wobbles once the TSC watchdog notices.
 
        turbografx.map[2|3]=    [HW,JOY]
                        TurboGraFX parallel port interface
                        Format:
                        <port#>,<js1>,<js2>,<js3>,<js4>,<js5>,<js6>,<js7>
-                       See also Documentation/input/joystick-parport.txt
+                       See also Documentation/input/devices/joystick-parport.rst
 
        udbg-immortal   [PPC] When debugging early kernel crashes that
                        happen after console_init() and before a proper
 
        usbcore.nousb   [USB] Disable the USB subsystem
 
+       usbcore.quirks=
+                       [USB] A list of quirk entries to augment the built-in
+                       usb core quirk list. List entries are separated by
+                       commas. Each entry has the form
+                       VendorID:ProductID:Flags. The IDs are 4-digit hex
+                       numbers and Flags is a set of letters. Each letter
+                       will change the built-in quirk; setting it if it is
+                       clear and clearing it if it is set. The letters have
+                       the following meanings:
+                               a = USB_QUIRK_STRING_FETCH_255 (string
+                                       descriptors must not be fetched using
+                                       a 255-byte read);
+                               b = USB_QUIRK_RESET_RESUME (device can't resume
+                                       correctly so reset it instead);
+                               c = USB_QUIRK_NO_SET_INTF (device can't handle
+                                       Set-Interface requests);
+                               d = USB_QUIRK_CONFIG_INTF_STRINGS (device can't
+                                       handle its Configuration or Interface
+                                       strings);
+                               e = USB_QUIRK_RESET (device can't be reset
+                                       (e.g morph devices), don't use reset);
+                               f = USB_QUIRK_HONOR_BNUMINTERFACES (device has
+                                       more interface descriptions than the
+                                       bNumInterfaces count, and can't handle
+                                       talking to these interfaces);
+                               g = USB_QUIRK_DELAY_INIT (device needs a pause
+                                       during initialization, after we read
+                                       the device descriptor);
+                               h = USB_QUIRK_LINEAR_UFRAME_INTR_BINTERVAL (For
+                                       high speed and super speed interrupt
+                                       endpoints, the USB 2.0 and USB 3.0 spec
+                                       require the interval in microframes (1
+                                       microframe = 125 microseconds) to be
+                                       calculated as interval = 2 ^
+                                       (bInterval-1).
+                                       Devices with this quirk report their
+                                       bInterval as the result of this
+                                       calculation instead of the exponent
+                                       variable used in the calculation);
+                               i = USB_QUIRK_DEVICE_QUALIFIER (device can't
+                                       handle device_qualifier descriptor
+                                       requests);
+                               j = USB_QUIRK_IGNORE_REMOTE_WAKEUP (device
+                                       generates spurious wakeup, ignore
+                                       remote wakeup capability);
+                               k = USB_QUIRK_NO_LPM (device can't handle Link
+                                       Power Management);
+                               l = USB_QUIRK_LINEAR_FRAME_INTR_BINTERVAL
+                                       (Device reports its bInterval as linear
+                                       frames instead of the USB 2.0
+                                       calculation);
+                               m = USB_QUIRK_DISCONNECT_SUSPEND (Device needs
+                                       to be disconnected before suspend to
+                                       prevent spurious wakeup);
+                               n = USB_QUIRK_DELAY_CTRL_MSG (Device needs a
+                                       pause after every control message);
+                               o = USB_QUIRK_HUB_SLOW_RESET (Hub needs extra
+                                       delay after resetting its port);
+                       Example: quirks=0781:5580:bk,0a5c:5834:gij
+
        usbhid.mousepoll=
                        [USBHID] The interval which mice are to be polled at.