x86/smpboot: Init apic mapping before usage
[cascardo/linux.git] / Documentation / kernel-parameters.txt
index 25037de..37babf9 100644 (file)
@@ -33,6 +33,37 @@ can also be entered as
 Double-quotes can be used to protect spaces in values, e.g.:
        param="spaces in here"
 
+cpu lists:
+----------
+
+Some kernel parameters take a list of CPUs as a value, e.g.  isolcpus,
+nohz_full, irqaffinity, rcu_nocbs.  The format of this list is:
+
+       <cpu number>,...,<cpu number>
+
+or
+
+       <cpu number>-<cpu number>
+       (must be a positive range in ascending order)
+
+or a mixture
+
+<cpu number>,...,<cpu number>-<cpu number>
+
+Note that for the special case of a range one can split the range into equal
+sized groups and for each group use some amount from the beginning of that
+group:
+
+       <cpu number>-cpu number>:<used size>/<group size>
+
+For example one can add to the command line following parameter:
+
+       isolcpus=1,2,10-20,100-2000:2/25
+
+where the final item represents CPUs 100,101,125,126,150,151,...
+
+
+
 This document may not be entirely up to date and comprehensive. The command
 "modinfo -p ${modulename}" shows a current list of all parameters of a loadable
 module. Loadable modules, after being loaded into the running kernel, also
@@ -460,6 +491,15 @@ bytes respectively. Such letter suffixes can also be entirely omitted.
                        driver will print ACPI tables for AMD IOMMU during
                        IOMMU initialization.
 
+       amd_iommu_intr= [HW,X86-64]
+                       Specifies one of the following AMD IOMMU interrupt
+                       remapping modes:
+                       legacy     - Use legacy interrupt remapping mode.
+                       vapic      - Use virtual APIC mode, which allows IOMMU
+                                    to inject interrupts directly into guest.
+                                    This mode requires kvm-amd.avic=1.
+                                    (Default when IOMMU HW support is present.)
+
        amijoy.map=     [HW,JOY] Amiga joystick support
                        Map of devices attached to JOY0DAT and JOY1DAT
                        Format: <a>,<b>
@@ -1054,11 +1094,12 @@ bytes respectively. Such letter suffixes can also be entirely omitted.
                        determined by the stdout-path property in device
                        tree's chosen node.
 
-               cdns,<addr>
-                       Start an early, polled-mode console on a cadence serial
-                       port at the specified address. The cadence serial port
-                       must already be setup and configured. Options are not
-                       yet supported.
+               cdns,<addr>[,options]
+                       Start an early, polled-mode console on a Cadence
+                       (xuartps) serial port at the specified address. Only
+                       supported option is baud rate. If baud rate is not
+                       specified, the serial port must already be setup and
+                       configured.
 
                uart[8250],io,<addr>[,options]
                uart[8250],mmio,<addr>[,options]
@@ -1373,6 +1414,10 @@ bytes respectively. Such letter suffixes can also be entirely omitted.
                        Format: <unsigned int> such that (rxsize & ~0x1fffc0) == 0.
                        Default: 1024
 
+       gpio-mockup.gpio_mockup_ranges
+                       [HW] Sets the ranges of gpiochip of for this device.
+                       Format: <start1>,<end1>,<start2>,<end2>...
+
        hardlockup_all_cpu_backtrace=
                        [KNL] Should the hard-lockup detector generate
                        backtraces on all cpus.
@@ -1466,7 +1511,14 @@ bytes respectively. Such letter suffixes can also be entirely omitted.
        i8042.nopnp     [HW] Don't use ACPIPnP / PnPBIOS to discover KBD/AUX
                             controllers
        i8042.notimeout [HW] Ignore timeout condition signalled by controller
-       i8042.reset     [HW] Reset the controller during init and cleanup
+       i8042.reset     [HW] Reset the controller during init, cleanup and
+                            suspend-to-ram transitions, only during s2r
+                            transitions, or never reset
+                       Format: { 1 | Y | y | 0 | N | n }
+                       1, Y, y: always reset controller
+                       0, N, n: don't ever reset controller
+                       Default: only on s2r transitions on x86; most other
+                       architectures force reset to be always executed
        i8042.unlock    [HW] Unlock (ignore) the keylock
        i8042.kbdreset  [HW] Reset device connected to KBD port
 
@@ -1652,6 +1704,11 @@ bytes respectively. Such letter suffixes can also be entirely omitted.
 
        initrd=         [BOOT] Specify the location of the initial ramdisk
 
+       init_pkru=      [x86] Specify the default memory protection keys rights
+                       register contents for all processes.  0x55555554 by
+                       default (disallow access to all but pkey 0).  Can
+                       override in debugfs after boot.
+
        inport.irq=     [HW] Inport (ATI XL and Microsoft) busmouse driver
                        Format: <irq>
 
@@ -1697,7 +1754,7 @@ bytes respectively. Such letter suffixes can also be entirely omitted.
 
        intel_idle.max_cstate=  [KNL,HW,ACPI,X86]
                        0       disables intel_idle and fall back on acpi_idle.
-                       1 to 6  specify maximum depth of C-state.
+                       1 to 9  specify maximum depth of C-state.
 
        intel_pstate=  [X86]
                       disable
@@ -1770,13 +1827,7 @@ bytes respectively. Such letter suffixes can also be entirely omitted.
                        See Documentation/filesystems/nfs/nfsroot.txt.
 
        irqaffinity=    [SMP] Set the default irq affinity mask
-                       Format:
-                       <cpu number>,...,<cpu number>
-                       or
-                       <cpu number>-<cpu number>
-                       (must be a positive range in ascending order)
-                       or a mixture
-                       <cpu number>,...,<cpu number>-<cpu number>
+                       The argument is a cpu list, as described above.
 
        irqfixup        [HW]
                        When an interrupt is not handled search all handlers
@@ -1793,13 +1844,7 @@ bytes respectively. Such letter suffixes can also be entirely omitted.
                        Format: <RDP>,<reset>,<pci_scan>,<verbosity>
 
        isolcpus=       [KNL,SMP] Isolate CPUs from the general scheduler.
-                       Format:
-                       <cpu number>,...,<cpu number>
-                       or
-                       <cpu number>-<cpu number>
-                       (must be a positive range in ascending order)
-                       or a mixture
-                       <cpu number>,...,<cpu number>-<cpu number>
+                       The argument is a cpu list, as described above.
 
                        This option can be used to specify one or more CPUs
                        to isolate from the general SMP balancing and scheduling
@@ -2170,10 +2215,13 @@ bytes respectively. Such letter suffixes can also be entirely omitted.
                        than or equal to this physical address is ignored.
 
        maxcpus=        [SMP] Maximum number of processors that an SMP kernel
-                       should make use of.  maxcpus=n : n >= 0 limits the
-                       kernel to using 'n' processors.  n=0 is a special case,
-                       it is equivalent to "nosmp", which also disables
-                       the IO APIC.
+                       will bring up during bootup.  maxcpus=n : n >= 0 limits
+                       the kernel to bring up 'n' processors. Surely after
+                       bootup you can bring up the other plugged cpu by executing
+                       "echo 1 > /sys/devices/system/cpu/cpuX/online". So maxcpus
+                       only takes effect during system bootup.
+                       While n=0 is a special case, it is equivalent to "nosmp",
+                       which also disables the IO APIC.
 
        max_loop=       [LOOP] The number of loop block devices that get
        (loop.max_loop) unconditionally pre-created at init time. The default
@@ -2429,6 +2477,11 @@ bytes respectively. Such letter suffixes can also be entirely omitted.
        nfsrootdebug    [NFS] enable nfsroot debugging messages.
                        See Documentation/filesystems/nfs/nfsroot.txt.
 
+       nfs.callback_nr_threads=
+                       [NFSv4] set the total number of threads that the
+                       NFS client will assign to service NFSv4 callback
+                       requests.
+
        nfs.callback_tcpport=
                        [NFS] set the TCP port on which the NFSv4 callback
                        channel should listen.
@@ -2452,6 +2505,13 @@ bytes respectively. Such letter suffixes can also be entirely omitted.
                        of returning the full 64-bit number.
                        The default is to return 64-bit inode numbers.
 
+       nfs.max_session_cb_slots=
+                       [NFSv4.1] Sets the maximum number of session
+                       slots the client will assign to the callback
+                       channel. This determines the maximum number of
+                       callbacks the client will process in parallel for
+                       a particular server.
+
        nfs.max_session_slots=
                        [NFSv4.1] Sets the maximum number of session slots
                        the client will attempt to negotiate with the server.
@@ -2580,8 +2640,6 @@ bytes respectively. Such letter suffixes can also be entirely omitted.
 
        nodelayacct     [KNL] Disable per-task delay accounting
 
-       nodisconnect    [HW,SCSI,M68K] Disables SCSI disconnects.
-
        nodsp           [SH] Disable hardware DSP at boot time.
 
        noefi           Disable EFI runtime services support.
@@ -2660,6 +2718,7 @@ bytes respectively. Such letter suffixes can also be entirely omitted.
                        Default: on
 
        nohz_full=      [KNL,BOOT]
+                       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
                        whenever possible. The boot CPU will be forced outside
@@ -2782,9 +2841,12 @@ bytes respectively. Such letter suffixes can also be entirely omitted.
 
        nr_cpus=        [SMP] Maximum number of processors that an SMP kernel
                        could support.  nr_cpus=n : n >= 1 limits the kernel to
-                       supporting 'n' processors. Later in runtime you can not
-                       use hotplug cpu feature to put more cpu back to online.
-                       just like you compile the kernel NR_CPUS=n
+                       support 'n' processors. It could be larger than the
+                       number of already plugged CPU during bootup, later in
+                       runtime you can physically add extra cpu until it reaches
+                       n. So during boot up some boot time memory for per-cpu
+                       variables need be pre-allocated for later physical cpu
+                       hot plugging.
 
        nr_uarts=       [SERIAL] maximum number of UARTs to be registered.
 
@@ -3262,6 +3324,8 @@ bytes respectively. Such letter suffixes can also be entirely omitted.
                        See Documentation/blockdev/ramdisk.txt.
 
        rcu_nocbs=      [KNL]
+                       The argument is a cpu list, as described above.
+
                        In kernels built with CONFIG_RCU_NOCB_CPU=y, set
                        the specified list of CPUs to be no-callback CPUs.
                        Invocation of these CPUs' RCU callbacks will
@@ -4247,6 +4311,8 @@ bytes respectively. Such letter suffixes can also be entirely omitted.
                                u = IGNORE_UAS (don't bind to the uas driver);
                                w = NO_WP_DETECT (don't test whether the
                                        medium is write-protected).
+                               y = ALWAYS_SYNC (issue a SYNCHRONIZE_CACHE
+                                       even if the device claims no cache)
                        Example: quirks=0419:aaf5:rl,0421:0433:rc
 
        user_debug=     [KNL,ARM]