Merge tag 'x86-urgent-2022-08-13' of git://git.kernel.org/pub/scm/linux/kernel/git...
[platform/kernel/linux-rpi.git] / Documentation / admin-guide / kernel-parameters.txt
index 523b196..d7f3090 100644 (file)
                        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
        nopku           [X86] Disable Memory Protection Keys CPU feature found
                        in some Intel CPUs.
 
-       <module>.async_probe [KNL]
-                       Enable asynchronous probe on this module.
+       <module>.async_probe[=<bool>] [KNL]
+                       If no <bool> value is specified or if the value
+                       specified is not a valid <bool>, enable asynchronous
+                       probe on this module.  Otherwise, enable/disable
+                       asynchronous probe on this module as indicated by the
+                       <bool> value. See also: module.async_probe
 
        early_ioremap_debug [KNL]
                        Enable debug messages in early_ioremap support. This
                        (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).
 
        hlt             [BUGS=ARM,SH]
 
+       hostname=       [KNL] Set the hostname (aka UTS nodename).
+                       Format: <string>
+                       This allows setting the system's hostname during early
+                       startup. This sets the name returned by gethostname.
+                       Using this parameter to set the hostname makes it
+                       possible to ensure the hostname is correctly set before
+                       any userspace processes run, avoiding the possibility
+                       that a process may call gethostname before the hostname
+                       has been explicitly set, resulting in the calling
+                       process getting an incorrect result. The string must
+                       not exceed the maximum allowed hostname length (usually
+                       64 characters) and will be truncated otherwise.
+
        hpet=           [X86-32,HPET] option to control HPET usage
                        Format: { enable (default) | disable | force |
                                verbose }
        hugetlb_free_vmemmap=
                        [KNL] Reguires CONFIG_HUGETLB_PAGE_OPTIMIZE_VMEMMAP
                        enabled.
+                       Control if HugeTLB Vmemmap Optimization (HVO) is enabled.
                        Allows heavy hugetlb users to free up some more
                        memory (7 * PAGE_SIZE for each 2MB hugetlb page).
-                       Format: { [oO][Nn]/Y/y/1 | [oO][Ff]/N/n/0 (default) }
+                       Format: { on | off (default) }
 
-                       [oO][Nn]/Y/y/1: enable the feature
-                       [oO][Ff]/N/n/0: disable the feature
+                       on: enable HVO
+                       off: disable HVO
 
                        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).
 
                        [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:
                        For details see:
                        Documentation/admin-guide/hw-vuln/processor_mmio_stale_data.rst
 
+       module.async_probe=<bool>
+                       [KNL] When set to true, modules will use async probing
+                       by default. To enable/disable async probing for a
+                       specific module, use the module specific control that
+                       is documented under <module>.async_probe. When both
+                       module.async_probe and <module>.async_probe are
+                       specified, <module>.async_probe takes precedence for
+                       the specific module.
+
        module.sig_enforce
                        [KNL] When CONFIG_MODULE_SIG is set, this means that
                        modules without (valid) signatures will fail to load.
 
        noautogroup     Disable scheduler automatic task group creation.
 
-       nobats          [PPC] Do not use BATs for mapping kernel lowmem
-                       on "Classic" PPC cores.
-
        nocache         [ARM]
 
        nodsp           [SH] Disable hardware DSP at boot time.
                        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
 
        nolapic_timer   [X86-32,APIC] Do not use the local APIC timer.
 
-       noltlbs         [PPC] Do not use large page/tlb entries for kernel
-                       lowmem mapping on PPC40x and PPC8xx
-
        nomca           [IA-64] Disable machine check abort handling
 
        nomce           [X86-32] Disable Machine Check Exception
        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
                        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.
                        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)