Merge tag 'powerpc-6.0-1' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc...
[linux-2.6-microblaze.git] / Documentation / admin-guide / kernel-parameters.txt
index 2322e42..f251f5c 100644 (file)
        arm64.nomte     [ARM64] Unconditionally disable Memory Tagging Extension
                        support
 
+       arm64.nosve     [ARM64] Unconditionally disable Scalable Vector
+                       Extension support
+
+       arm64.nosme     [ARM64] Unconditionally disable Scalable Matrix
+                       Extension support
+
        ataflop=        [HW,M68k]
 
        atarimouse=     [HW,MOUSE] Atari Mouse
                        nosocket -- Disable socket memory accounting.
                        nokmem -- Disable kernel memory accounting.
 
-       checkreqprot    [SELINUX] Set initial checkreqprot flag value.
+       checkreqprot=   [SELINUX] Set initial checkreqprot flag value.
                        Format: { "0" | "1" }
                        See security/selinux/Kconfig help text.
                        0 -- check protection applied by kernel (includes
                        (in particular on some ATI chipsets).
                        The kernel tries to set a reasonable default.
 
-       enforcing       [SELINUX] Set initial enforcing status.
+       enforcing=      [SELINUX] Set initial enforcing status.
                        Format: {"0" | "1"}
                        See security/selinux/Kconfig help text.
                        0 -- permissive (log only, no denials).
                        Built with CONFIG_HUGETLB_PAGE_OPTIMIZE_VMEMMAP_DEFAULT_ON=y,
                        the default is on.
 
-                       This is not compatible with memory_hotplug.memmap_on_memory.
-                       If both parameters are enabled, hugetlb_free_vmemmap takes
-                       precedence over memory_hotplug.memmap_on_memory.
+                       Note that the vmemmap pages may be allocated from the added
+                       memory block itself when memory_hotplug.memmap_on_memory is
+                       enabled, those vmemmap pages cannot be optimized even if this
+                       feature is enabled.  Other vmemmap pages not allocated from
+                       the added memory block itself do not be affected.
 
        hung_task_panic=
                        [KNL] Should the hung task detector generate panics.
 
        ivrs_ioapic     [HW,X86-64]
                        Provide an override to the IOAPIC-ID<->DEVICE-ID
-                       mapping provided in the IVRS ACPI table. For
-                       example, to map IOAPIC-ID decimal 10 to
-                       PCI device 00:14.0 write the parameter as:
+                       mapping provided in the IVRS ACPI table.
+                       By default, PCI segment is 0, and can be omitted.
+                       For example:
+                       * To map IOAPIC-ID decimal 10 to PCI device 00:14.0
+                         write the parameter as:
                                ivrs_ioapic[10]=00:14.0
+                       * To map IOAPIC-ID decimal 10 to PCI segment 0x1 and
+                         PCI device 00:14.0 write the parameter as:
+                               ivrs_ioapic[10]=0001:00:14.0
 
        ivrs_hpet       [HW,X86-64]
                        Provide an override to the HPET-ID<->DEVICE-ID
-                       mapping provided in the IVRS ACPI table. For
-                       example, to map HPET-ID decimal 0 to
-                       PCI device 00:14.0 write the parameter as:
+                       mapping provided in the IVRS ACPI table.
+                       By default, PCI segment is 0, and can be omitted.
+                       For example:
+                       * To map HPET-ID decimal 0 to PCI device 00:14.0
+                         write the parameter as:
                                ivrs_hpet[0]=00:14.0
+                       * To map HPET-ID decimal 10 to PCI segment 0x1 and
+                         PCI device 00:14.0 write the parameter as:
+                               ivrs_ioapic[10]=0001:00:14.0
 
        ivrs_acpihid    [HW,X86-64]
                        Provide an override to the ACPI-HID:UID<->DEVICE-ID
-                       mapping provided in the IVRS ACPI table. For
-                       example, to map UART-HID:UID AMD0020:0 to
-                       PCI device 00:14.5 write the parameter as:
+                       mapping provided in the IVRS ACPI table.
+
+                       For example, to map UART-HID:UID AMD0020:0 to
+                       PCI segment 0x1 and PCI device ID 00:14.5,
+                       write the parameter as:
+                               ivrs_acpihid[0001:00:14.5]=AMD0020:0
+
+                       By default, PCI segment is 0, and can be omitted.
+                       For example, PCI device 00:14.5 write the parameter as:
                                ivrs_acpihid[00:14.5]=AMD0020:0
 
        js=             [HW,JOY] Analog joystick
                        the KVM_CLEAR_DIRTY ioctl, and only for the pages being
                        cleared.
 
-                       Eager page splitting currently only supports splitting
-                       huge pages mapped by the TDP MMU.
+                       Eager page splitting is only supported when kvm.tdp_mmu=Y.
 
                        Default is Y (on).
 
 
                        protected: nVHE-based mode with support for guests whose
                                   state is kept private from the host.
-                                  Not valid if the kernel is running in EL2.
 
                        Defaults to VHE/nVHE based on hardware support. Setting
                        mode to "protected" will disable kexec and hibernation
                        [KNL,X86,ARM] Boolean flag to enable this feature.
                        Format: {on | off (default)}
                        When enabled, runtime hotplugged memory will
-                       allocate its internal metadata (struct pages)
-                       from the hotadded memory which will allow to
-                       hotadd a lot of memory without requiring
-                       additional memory to do so.
+                       allocate its internal metadata (struct pages,
+                       those vmemmap pages cannot be optimized even
+                       if hugetlb_free_vmemmap is enabled) from the
+                       hotadded memory which will allow to hotadd a
+                       lot of memory without requiring additional
+                       memory to do so.
                        This feature is disabled by default because it
                        has some implication on large (e.g. GB)
                        allocations in some configurations (e.g. small
                        Note that even when enabled, there are a few cases where
                        the feature is not effective.
 
-                       This is not compatible with hugetlb_free_vmemmap. If
-                       both parameters are enabled, hugetlb_free_vmemmap takes
-                       precedence over memory_hotplug.memmap_on_memory.
-
        memtest=        [KNL,X86,ARM,M68K,PPC,RISCV] Enable memtest
                        Format: <integer>
                        default : 0 <disable>
                        mem_encrypt=on:         Activate SME
                        mem_encrypt=off:        Do not activate SME
 
-                       Refer to Documentation/virt/kvm/amd-memory-encryption.rst
+                       Refer to Documentation/virt/kvm/x86/amd-memory-encryption.rst
                        for details on when memory encryption can be activated.
 
        mem_sleep_default=      [SUSPEND] Default system suspend mode:
                                improves system performance, but it may also
                                expose users to several CPU vulnerabilities.
                                Equivalent to: nopti [X86,PPC]
-                                              kpti=0 [ARM64]
+                                              if nokaslr then kpti=0 [ARM64]
                                               nospectre_v1 [X86,PPC]
                                               nobp=0 [S390]
                                               nospectre_v2 [X86,PPC,S390,ARM64]
                                               srbds=off [X86,INTEL]
                                               no_entry_flush [PPC]
                                               no_uaccess_flush [PPC]
+                                              mmio_stale_data=off [X86]
+                                              retbleed=off [X86]
 
                                Exceptions:
                                               This does not have any effect on
                                Equivalent to: l1tf=flush,nosmt [X86]
                                               mds=full,nosmt [X86]
                                               tsx_async_abort=full,nosmt [X86]
+                                              mmio_stale_data=full,nosmt [X86]
+                                              retbleed=auto,nosmt [X86]
 
        mminit_loglevel=
                        [KNL] When CONFIG_DEBUG_MEMORY_INIT is set, this
                        log everything. Information is printed at KERN_DEBUG
                        so loglevel=8 may also need to be specified.
 
+       mmio_stale_data=
+                       [X86,INTEL] Control mitigation for the Processor
+                       MMIO Stale Data vulnerabilities.
+
+                       Processor MMIO Stale Data is a class of
+                       vulnerabilities that may expose data after an MMIO
+                       operation. Exposed data could originate or end in
+                       the same CPU buffers as affected by MDS and TAA.
+                       Therefore, similar to MDS and TAA, the mitigation
+                       is to clear the affected CPU buffers.
+
+                       This parameter controls the mitigation. The
+                       options are:
+
+                       full       - Enable mitigation on vulnerable CPUs
+
+                       full,nosmt - Enable mitigation and disable SMT on
+                                    vulnerable CPUs.
+
+                       off        - Unconditionally disable mitigation
+
+                       On MDS or TAA affected machines,
+                       mmio_stale_data=off can be prevented by an active
+                       MDS or TAA mitigation as these vulnerabilities are
+                       mitigated with the same mechanism so in order to
+                       disable this mitigation, you need to specify
+                       mds=off and tsx_async_abort=off too.
+
+                       Not specifying this option is equivalent to
+                       mmio_stale_data=full.
+
+                       For details see:
+                       Documentation/admin-guide/hw-vuln/processor_mmio_stale_data.rst
+
        module.sig_enforce
                        [KNL] When CONFIG_MODULE_SIG is set, this means that
                        modules without (valid) signatures will fail to load.
                        just as if they had also been called out in the
                        rcu_nocbs= boot parameter.
 
+                       Note that this argument takes precedence over
+                       the CONFIG_RCU_NOCB_CPU_DEFAULT_ALL option.
+
        noiotrap        [SH] Disables trapped I/O port accesses.
 
        noirqdebug      [X86-32] Disables the code which attempts to detect and
        noreplace-smp   [X86-32,SMP] Don't replace SMP instructions
                        with UP alternatives
 
-       nordrand        [X86] Disable kernel use of the RDRAND and
-                       RDSEED instructions even if they are supported
-                       by the processor.  RDRAND and RDSEED are still
-                       available to user space applications.
-
        noresume        [SWSUSP] Disables resume and restores original swap
                        space.
 
                        no-callback mode from boot but the mode may be
                        toggled at runtime via cpusets.
 
+                       Note that this argument takes precedence over
+                       the CONFIG_RCU_NOCB_CPU_DEFAULT_ALL option.
+
        rcu_nocb_poll   [KNL]
                        Rather than requiring that offloaded CPUs
                        (specified by rcu_nocbs= above) explicitly
                        When RCU_NOCB_CPU is set, also adjust the
                        priority of NOCB callback kthreads.
 
+       rcutree.rcu_divisor= [KNL]
+                       Set the shift-right count to use to compute
+                       the callback-invocation batch limit bl from
+                       the number of callbacks queued on this CPU.
+                       The result will be bounded below by the value of
+                       the rcutree.blimit kernel parameter.  Every bl
+                       callbacks, the softirq handler will exit in
+                       order to allow the CPU to do other work.
+
+                       Please note that this callback-invocation batch
+                       limit applies only to non-offloaded callback
+                       invocation.  Offloaded callbacks are instead
+                       invoked in the context of an rcuoc kthread, which
+                       scheduler will preempt as it does any other task.
+
+       rcutree.nocb_nobypass_lim_per_jiffy= [KNL]
+                       On callback-offloaded (rcu_nocbs) CPUs,
+                       RCU reduces the lock contention that would
+                       otherwise be caused by callback floods through
+                       use of the ->nocb_bypass list.  However, in the
+                       common non-flooded case, RCU queues directly to
+                       the main ->cblist in order to avoid the extra
+                       overhead of the ->nocb_bypass list and its lock.
+                       But if there are too many callbacks queued during
+                       a single jiffy, RCU pre-queues the callbacks into
+                       the ->nocb_bypass queue.  The definition of "too
+                       many" is supplied by this kernel boot parameter.
+
        rcutree.rcu_nocb_gp_stride= [KNL]
                        Set the number of NOCB callback kthreads in
                        each group, which defaults to the square root
 
        retain_initrd   [RAM] Keep initrd memory after extraction
 
+       retbleed=       [X86] Control mitigation of RETBleed (Arbitrary
+                       Speculative Code Execution with Return Instructions)
+                       vulnerability.
+
+                       off          - no mitigation
+                       auto         - automatically select a migitation
+                       auto,nosmt   - automatically select a mitigation,
+                                      disabling SMT if necessary for
+                                      the full mitigation (only on Zen1
+                                      and older without STIBP).
+                       ibpb         - mitigate short speculation windows on
+                                      basic block boundaries too. Safe, highest
+                                      perf impact.
+                       unret        - force enable untrained return thunks,
+                                      only effective on AMD f15h-f17h
+                                      based systems.
+                       unret,nosmt  - like unret, will disable SMT when STIBP
+                                      is not available.
+
+                       Selecting 'auto' will choose a mitigation method at run
+                       time according to the CPU.
+
+                       Not specifying this option is equivalent to retbleed=auto.
+
        rfkill.default_state=
                0       "airplane mode".  All wifi, bluetooth, wimax, gps, fm,
                        etc. communication is blocked by default.
                        cache (risks via metadata attacks are mostly
                        unchanged). Debug options disable merging on their
                        own.
-                       For more information see Documentation/vm/slub.rst.
+                       For more information see Documentation/mm/slub.rst.
 
        slab_max_order= [MM, SLAB]
                        Determines the maximum allowed order for slabs.
                        slub_debug can create guard zones around objects and
                        may poison objects when not in use. Also tracks the
                        last alloc / free. For more information see
-                       Documentation/vm/slub.rst.
+                       Documentation/mm/slub.rst.
 
        slub_max_order= [MM, SLUB]
                        Determines the maximum allowed order for slabs.
                        A high setting may cause OOMs due to memory
                        fragmentation. For more information see
-                       Documentation/vm/slub.rst.
+                       Documentation/mm/slub.rst.
 
        slub_min_objects=       [MM, SLUB]
                        The minimum number of objects per slab. SLUB will
                        the number of objects indicated. The higher the number
                        of objects the smaller the overhead of tracking slabs
                        and the less frequently locks need to be acquired.
-                       For more information see Documentation/vm/slub.rst.
+                       For more information see Documentation/mm/slub.rst.
 
        slub_min_order= [MM, SLUB]
                        Determines the minimum page order for slabs. Must be
                        lower than slub_max_order.
-                       For more information see Documentation/vm/slub.rst.
+                       For more information see Documentation/mm/slub.rst.
 
        slub_merge      [MM, SLUB]
                        Same with slab_merge.
                        eibrs             - enhanced IBRS
                        eibrs,retpoline   - enhanced IBRS + Retpolines
                        eibrs,lfence      - enhanced IBRS + LFENCE
+                       ibrs              - use IBRS to protect kernel
 
                        Not specifying this option is equivalent to
                        spectre_v2=auto.
                        expediting.  Set to zero to disable automatic
                        expediting.
 
+       srcutree.srcu_max_nodelay [KNL]
+                       Specifies the number of no-delay instances
+                       per jiffy for which the SRCU grace period
+                       worker thread will be rescheduled with zero
+                       delay. Beyond this limit, worker thread will
+                       be rescheduled with a sleep delay of one jiffy.
+
+       srcutree.srcu_max_nodelay_phase [KNL]
+                       Specifies the per-grace-period phase, number of
+                       non-sleeping polls of readers. Beyond this limit,
+                       grace period worker thread will be rescheduled
+                       with a sleep delay of one jiffy, between each
+                       rescan of the readers, for a grace period phase.
+
+       srcutree.srcu_retry_check_delay [KNL]
+                       Specifies number of microseconds of non-sleeping
+                       delay between each non-sleeping poll of readers.
+
        srcutree.small_contention_lim [KNL]
                        Specifies the number of update-side contention
                        events per jiffy will be tolerated before
                        it if 0 is given (See Documentation/admin-guide/cgroup-v1/memory.rst)
 
        swiotlb=        [ARM,IA-64,PPC,MIPS,X86]
-                       Format: { <int> | force | noforce }
+                       Format: { <int> [,<int>] | force | noforce }
                        <int> -- Number of I/O TLB slabs
+                       <int> -- Second integer after comma. Number of swiotlb
+                                areas with their own lock. Will be rounded up
+                                to a power of 2.
                        force -- force using of bounce buffers even if they
                                 wouldn't be automatically used by the kernel
                        noforce -- Never use bounce buffers (for debugging)