Merge branch 'akpm' (fixes from Andrew Morton)
[firefly-linux-kernel-4.4.55.git] / init / Kconfig
index 6069b210d83a8b1e66549cbb9a5674b4c0ec0bf7..d2355812ba48a7e1f52855ad9c431878ee32f175 100644 (file)
@@ -783,8 +783,13 @@ endchoice
 
 endmenu # "RCU Subsystem"
 
+config BUILD_BIN2C
+       bool
+       default n
+
 config IKCONFIG
        tristate "Kernel .config support"
+       select BUILD_BIN2C
        ---help---
          This option enables the complete Linux kernel ".config" file
          contents to be saved in the kernel. It provides documentation
@@ -806,16 +811,56 @@ config LOG_BUF_SHIFT
        int "Kernel log buffer size (16 => 64KB, 17 => 128KB)"
        range 12 21
        default 17
+       depends on PRINTK
        help
-         Select kernel log buffer size as a power of 2.
+         Select the minimal kernel log buffer size as a power of 2.
+         The final size is affected by LOG_CPU_MAX_BUF_SHIFT config
+         parameter, see below. Any higher size also might be forced
+         by "log_buf_len" boot parameter.
+
          Examples:
-                    17 => 128 KB
+                    17 => 128 KB
                     16 => 64 KB
-                    15 => 32 KB
-                    14 => 16 KB
+                    15 => 32 KB
+                    14 => 16 KB
                     13 =>  8 KB
                     12 =>  4 KB
 
+config LOG_CPU_MAX_BUF_SHIFT
+       int "CPU kernel log buffer size contribution (13 => 8 KB, 17 => 128KB)"
+       range 0 21
+       default 12 if !BASE_SMALL
+       default 0 if BASE_SMALL
+       depends on PRINTK
+       help
+         This option allows to increase the default ring buffer size
+         according to the number of CPUs. The value defines the contribution
+         of each CPU as a power of 2. The used space is typically only few
+         lines however it might be much more when problems are reported,
+         e.g. backtraces.
+
+         The increased size means that a new buffer has to be allocated and
+         the original static one is unused. It makes sense only on systems
+         with more CPUs. Therefore this value is used only when the sum of
+         contributions is greater than the half of the default kernel ring
+         buffer as defined by LOG_BUF_SHIFT. The default values are set
+         so that more than 64 CPUs are needed to trigger the allocation.
+
+         Also this option is ignored when "log_buf_len" kernel parameter is
+         used as it forces an exact (power of two) size of the ring buffer.
+
+         The number of possible CPUs is used for this computation ignoring
+         hotplugging making the compuation optimal for the the worst case
+         scenerio while allowing a simple algorithm to be used from bootup.
+
+         Examples shift values and their meaning:
+                    17 => 128 KB for each CPU
+                    16 =>  64 KB for each CPU
+                    15 =>  32 KB for each CPU
+                    14 =>  16 KB for each CPU
+                    13 =>   8 KB for each CPU
+                    12 =>   4 KB for each CPU
+
 #
 # Architectures with an unreliable sched_clock() should select this:
 #
@@ -844,17 +889,6 @@ config ARCH_SUPPORTS_INT128
 config ARCH_WANT_NUMA_VARIABLE_LOCALITY
        bool
 
-#
-# For architectures that are willing to define _PAGE_NUMA as _PAGE_PROTNONE
-config ARCH_WANTS_PROT_NUMA_PROT_NONE
-       bool
-
-config ARCH_USES_NUMA_PROT_NONE
-       bool
-       default y
-       depends on ARCH_WANTS_PROT_NUMA_PROT_NONE
-       depends on NUMA_BALANCING
-
 config NUMA_BALANCING_DEFAULT_ENABLED
        bool "Automatically enable NUMA aware memory/task placement"
        default y
@@ -1432,6 +1466,7 @@ config FUTEX
 
 config HAVE_FUTEX_CMPXCHG
        bool
+       depends on FUTEX
        help
          Architectures should select this if futex_atomic_cmpxchg_inatomic()
          is implemented and always working. This removes a couple of runtime
@@ -1494,6 +1529,16 @@ config AIO
          by some high performance threaded applications. Disabling
          this option saves about 7k.
 
+config ADVISE_SYSCALLS
+       bool "Enable madvise/fadvise syscalls" if EXPERT
+       default y
+       help
+         This option enables the madvise and fadvise syscalls, used by
+         applications to advise the kernel about their future memory or file
+         usage, improving performance. If building an embedded system where no
+         applications use these syscalls, you can disable this option to save
+         space.
+
 config PCI_QUIRKS
        default y
        bool "Enable PCI quirk workarounds" if EXPERT
@@ -1863,6 +1908,49 @@ config MODULE_SIG_HASH
        default "sha384" if MODULE_SIG_SHA384
        default "sha512" if MODULE_SIG_SHA512
 
+config MODULE_COMPRESS
+       bool "Compress modules on installation"
+       depends on MODULES
+       help
+         This option compresses the kernel modules when 'make
+         modules_install' is run.
+
+         The modules will be compressed either using gzip or xz depend on the
+         choice made in "Compression algorithm".
+
+         module-init-tools has support for gzip format while kmod handle gzip
+         and xz compressed modules.
+
+         When a kernel module is installed from outside of the main kernel
+         source and uses the Kbuild system for installing modules then that
+         kernel module will also be compressed when it is installed.
+
+         This option provides little benefit when the modules are to be used inside
+         an initrd or initramfs, it generally is more efficient to compress the whole
+         initrd or initramfs instead.
+
+         This is fully compatible with signed modules while the signed module is
+         compressed. module-init-tools or kmod handles decompression and provide to
+         other layer the uncompressed but signed payload.
+
+choice
+       prompt "Compression algorithm"
+       depends on MODULE_COMPRESS
+       default MODULE_COMPRESS_GZIP
+       help
+         This determines which sort of compression will be used during
+         'make modules_install'.
+
+         GZIP (default) and XZ are supported.
+
+config MODULE_COMPRESS_GZIP
+       bool "GZIP"
+
+config MODULE_COMPRESS_XZ
+       bool "XZ"
+
+endchoice
+
 endif # MODULES
 
 config INIT_ALL_POSSIBLE