]> git.kernelconcepts.de Git - karo-tx-linux.git/commitdiff
Merge v3.19-rc1 into kbuild/for-next
authorMichal Marek <mmarek@suse.cz>
Fri, 2 Jan 2015 13:18:57 +0000 (14:18 +0100)
committerMichal Marek <mmarek@suse.cz>
Fri, 2 Jan 2015 13:18:57 +0000 (14:18 +0100)
1  2 
Makefile
arch/x86/Kconfig
init/Kconfig
kernel/gcov/Kconfig
lib/Kconfig.debug

diff --combined Makefile
index 7e0858fc1922434ce7bd5bde364a9869a30999ae,b1c3254441f3f3353465ef8b3cf2e563abe70bf4..60651a552d5c30167007ca58bb17487854abc8cd
+++ b/Makefile
@@@ -1,8 -1,8 +1,8 @@@
  VERSION = 3
- PATCHLEVEL = 18
+ PATCHLEVEL = 19
  SUBLEVEL = 0
  EXTRAVERSION = -rc1
- NAME = Shuffling Zombie Juror
+ NAME = Diseased Newt
  
  # *DOCUMENTATION*
  # To see a list of typical targets execute "make help"
@@@ -297,7 -297,7 +297,7 @@@ CONFIG_SHELL := $(shell if [ -x "$$BASH
  
  HOSTCC       = gcc
  HOSTCXX      = g++
- HOSTCFLAGS   = -Wall -Wmissing-prototypes -Wstrict-prototypes -O2 -fomit-frame-pointer
+ HOSTCFLAGS   = -Wall -Wmissing-prototypes -Wstrict-prototypes -O2 -fomit-frame-pointer -std=gnu89
  HOSTCXXFLAGS = -O2
  
  ifeq ($(shell $(HOSTCC) -v 2>&1 | grep -c "clang version"), 1)
@@@ -354,14 -354,9 +354,14 @@@ include $(srctree)/scripts/Kbuild.inclu
  # Make variables (CC, etc...)
  AS            = $(CROSS_COMPILE)as
  LD            = $(CROSS_COMPILE)ld
 +LDFINAL       = $(LD)
  CC            = $(CROSS_COMPILE)gcc
  CPP           = $(CC) -E
 +ifdef CONFIG_LTO
 +AR            = $(CROSS_COMPILE)gcc-ar
 +else
  AR            = $(CROSS_COMPILE)ar
 +endif
  NM            = $(CROSS_COMPILE)nm
  STRIP         = $(CROSS_COMPILE)strip
  OBJCOPY               = $(CROSS_COMPILE)objcopy
@@@ -406,7 -401,8 +406,8 @@@ KBUILD_CPPFLAGS := -D__KERNEL_
  KBUILD_CFLAGS   := -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs \
                   -fno-strict-aliasing -fno-common \
                   -Werror-implicit-function-declaration \
-                  -Wno-format-security
+                  -Wno-format-security \
+                  -std=gnu89
  
  KBUILD_AFLAGS_KERNEL :=
  KBUILD_CFLAGS_KERNEL :=
@@@ -421,7 -417,7 +422,7 @@@ KERNELVERSION = $(VERSION)$(if $(PATCHL
  
  export VERSION PATCHLEVEL SUBLEVEL KERNELRELEASE KERNELVERSION
  export ARCH SRCARCH CONFIG_SHELL HOSTCC HOSTCFLAGS CROSS_COMPILE AS LD CC
 -export CPP AR NM STRIP OBJCOPY OBJDUMP
 +export CPP AR NM STRIP OBJCOPY OBJDUMP LDFINAL
  export MAKE AWK GENKSYMS INSTALLKERNEL PERL PYTHON UTS_MACHINE
  export HOSTCXX HOSTCXXFLAGS LDFLAGS_MODULE CHECK CHECKFLAGS
  
@@@ -432,17 -428,6 +433,17 @@@ export KBUILD_AFLAGS_MODULE KBUILD_CFLA
  export KBUILD_AFLAGS_KERNEL KBUILD_CFLAGS_KERNEL
  export KBUILD_ARFLAGS
  
 +ifdef CONFIG_LTO
 +# LTO gcc creates a lot of files in TMPDIR, and with /tmp as tmpfs
 +# it's easy to drive the machine OOM. Use the object directory
 +# instead.
 +ifndef TMPDIR
 +TMPDIR ?= $(objtree)
 +export TMPDIR
 +$(info setting TMPDIR=$(objtree) for LTO build)
 +endif
 +endif
 +
  # When compiling out-of-tree modules, put MODVERDIR in the module
  # tree rather than in the kernel tree. The kernel tree might
  # even be read-only.
@@@ -792,7 -777,6 +793,7 @@@ ifeq ($(shell $(CONFIG_SHELL) $(srctree
  endif
  
  include $(srctree)/scripts/Makefile.extrawarn
 +include ${srctree}/scripts/Makefile.lto
  
  # Add user supplied CPPFLAGS, AFLAGS and CFLAGS as the last assignments
  KBUILD_CPPFLAGS += $(KCPPFLAGS)
diff --combined arch/x86/Kconfig
index 77c0ae35551abcaa3312ffac56f68b9d3ecef4da,ba397bde79482043d46e0e90d0bd6d7e71daa110..31ead48804830ec98ec5ef7b4104ab8e773af9a0
@@@ -24,6 -24,7 +24,7 @@@ config X8
        select ARCH_MIGHT_HAVE_ACPI_PDC if ACPI
        select ARCH_HAS_DEBUG_STRICT_USER_COPY_CHECKS
        select ARCH_HAS_FAST_MULTIPLIER
+       select ARCH_HAS_GCOV_PROFILE_ALL
        select ARCH_MIGHT_HAVE_PC_PARPORT
        select ARCH_MIGHT_HAVE_PC_SERIO
        select HAVE_AOUT if X86_32
@@@ -142,6 -143,10 +143,10 @@@ config INSTRUCTION_DECODE
        def_bool y
        depends on KPROBES || PERF_EVENTS || UPROBES
  
+ config PERF_EVENTS_INTEL_UNCORE
+       def_bool y
+       depends on PERF_EVENTS && CPU_SUP_INTEL && PCI
  config OUTPUT_FORMAT
        string
        default "elf32-i386" if X86_32
@@@ -584,7 -589,7 +589,7 @@@ config X86_32_IRI
  
  config SCHED_OMIT_FRAME_POINTER
        def_bool y
 -      prompt "Single-depth WCHAN output"
 +      prompt "Single-depth WCHAN output" if !LTO && !FRAME_POINTER
        depends on X86
        ---help---
          Calculate simpler /proc/<PID>/wchan values. If this option
@@@ -878,11 -883,11 +883,11 @@@ config X86_UP_IOAPI
  config X86_LOCAL_APIC
        def_bool y
        depends on X86_64 || SMP || X86_32_NON_STANDARD || X86_UP_APIC || PCI_MSI
+       select GENERIC_IRQ_LEGACY_ALLOC_HWIRQ
  
  config X86_IO_APIC
-       def_bool y
-       depends on X86_64 || SMP || X86_32_NON_STANDARD || X86_UP_IOAPIC || PCI_MSI
-       select GENERIC_IRQ_LEGACY_ALLOC_HWIRQ
+       def_bool X86_64 || SMP || X86_32_NON_STANDARD || X86_UP_IOAPIC
+       depends on X86_LOCAL_APIC
        select IRQ_DOMAIN
  
  config X86_REROUTE_FOR_BROKEN_BOOT_IRQS
@@@ -984,6 -989,24 +989,24 @@@ config X86_ESPFIX6
        def_bool y
        depends on X86_16BIT && X86_64
  
+ config X86_VSYSCALL_EMULATION
+        bool "Enable vsyscall emulation" if EXPERT
+        default y
+        depends on X86_64
+        ---help---
+        This enables emulation of the legacy vsyscall page.  Disabling
+        it is roughly equivalent to booting with vsyscall=none, except
+        that it will also disable the helpful warning if a program
+        tries to use a vsyscall.  With this option set to N, offending
+        programs will just segfault, citing addresses of the form
+        0xffffffffff600?00.
+        This option is required by many programs built before 2013, and
+        care should be used even with newer programs if set to N.
+        Disabling this option saves about 7K of kernel size and
+        possibly 4K of additional runtime pagetable memory.
  config TOSHIBA
        tristate "Toshiba Laptop support"
        depends on X86_32
@@@ -1567,6 -1590,32 +1590,32 @@@ config X86_SMA
  
          If unsure, say Y.
  
+ config X86_INTEL_MPX
+       prompt "Intel MPX (Memory Protection Extensions)"
+       def_bool n
+       depends on CPU_SUP_INTEL
+       ---help---
+         MPX provides hardware features that can be used in
+         conjunction with compiler-instrumented code to check
+         memory references.  It is designed to detect buffer
+         overflow or underflow bugs.
+         This option enables running applications which are
+         instrumented or otherwise use MPX.  It does not use MPX
+         itself inside the kernel or to protect the kernel
+         against bad memory references.
+         Enabling this option will make the kernel larger:
+         ~8k of kernel text and 36 bytes of data on a 64-bit
+         defconfig.  It adds a long to the 'mm_struct' which
+         will increase the kernel memory overhead of each
+         process and adds some branches to paths used during
+         exec() and munmap().
+         For details, see Documentation/x86/intel_mpx.txt
+         If unsure, say N.
  config EFI
        bool "EFI runtime service support"
        depends on ACPI
diff --combined init/Kconfig
index b454b162d2dfadde5204f41796cfffe0052c92d1,9afb971497f4c9972b0dcf14071edf9ef81320be..0c90b97d1fa462c0dab4830f765eb6a981ef9e61
@@@ -477,7 -477,7 +477,7 @@@ config TREE_RC
          thousands of CPUs.  It also scales down nicely to
          smaller systems.
  
- config TREE_PREEMPT_RCU
+ config PREEMPT_RCU
        bool "Preemptible tree-based hierarchical RCU"
        depends on PREEMPT
        select IRQ_WORK
@@@ -501,12 -501,6 +501,6 @@@ config TINY_RC
  
  endchoice
  
- config PREEMPT_RCU
-       def_bool TREE_PREEMPT_RCU
-       help
-         This option enables preemptible-RCU code that is common between
-         TREE_PREEMPT_RCU and, in the old days, TINY_PREEMPT_RCU.
  config TASKS_RCU
        bool "Task_based RCU implementation using voluntary context switch"
        default n
          If unsure, say N.
  
  config RCU_STALL_COMMON
-       def_bool ( TREE_RCU || TREE_PREEMPT_RCU || RCU_TRACE )
+       def_bool ( TREE_RCU || PREEMPT_RCU || RCU_TRACE )
        help
          This option enables RCU CPU stall code that is common between
          the TINY and TREE variants of RCU.  The purpose is to allow
@@@ -576,7 -570,7 +570,7 @@@ config RCU_FANOU
        int "Tree-based hierarchical RCU fanout value"
        range 2 64 if 64BIT
        range 2 32 if !64BIT
-       depends on TREE_RCU || TREE_PREEMPT_RCU
+       depends on TREE_RCU || PREEMPT_RCU
        default 64 if 64BIT
        default 32 if !64BIT
        help
@@@ -596,7 -590,7 +590,7 @@@ config RCU_FANOUT_LEA
        int "Tree-based hierarchical RCU leaf-level fanout value"
        range 2 RCU_FANOUT if 64BIT
        range 2 RCU_FANOUT if !64BIT
-       depends on TREE_RCU || TREE_PREEMPT_RCU
+       depends on TREE_RCU || PREEMPT_RCU
        default 16
        help
          This option controls the leaf-level fanout of hierarchical
  
  config RCU_FANOUT_EXACT
        bool "Disable tree-based hierarchical RCU auto-balancing"
-       depends on TREE_RCU || TREE_PREEMPT_RCU
+       depends on TREE_RCU || PREEMPT_RCU
        default n
        help
          This option forces use of the exact RCU_FANOUT value specified,
@@@ -652,11 -646,11 +646,11 @@@ config RCU_FAST_NO_H
          Say N if you are unsure.
  
  config TREE_RCU_TRACE
-       def_bool RCU_TRACE && ( TREE_RCU || TREE_PREEMPT_RCU )
+       def_bool RCU_TRACE && ( TREE_RCU || PREEMPT_RCU )
        select DEBUG_FS
        help
          This option provides tracing for the TREE_RCU and
-         TREE_PREEMPT_RCU implementations, permitting Makefile to
+         PREEMPT_RCU implementations, permitting Makefile to
          trivially select kernel/rcutree_trace.c.
  
  config RCU_BOOST
          Say Y here if you are working with real-time apps or heavy loads
          Say N here if you are unsure.
  
- config RCU_BOOST_PRIO
-       int "Real-time priority to boost RCU readers to"
+ config RCU_KTHREAD_PRIO
+       int "Real-time priority to use for RCU worker threads"
        range 1 99
        depends on RCU_BOOST
        default 1
        help
-         This option specifies the real-time priority to which long-term
-         preempted RCU readers are to be boosted.  If you are working
-         with a real-time application that has one or more CPU-bound
-         threads running at a real-time priority level, you should set
-         RCU_BOOST_PRIO to a priority higher then the highest-priority
-         real-time CPU-bound thread.  The default RCU_BOOST_PRIO value
-         of 1 is appropriate in the common case, which is real-time
+         This option specifies the SCHED_FIFO priority value that will be
+         assigned to the rcuc/n and rcub/n threads and is also the value
+         used for RCU_BOOST (if enabled). If you are working with a
+         real-time application that has one or more CPU-bound threads
+         running at a real-time priority level, you should set
+         RCU_KTHREAD_PRIO to a priority higher than the highest-priority
+         real-time CPU-bound application thread.  The default RCU_KTHREAD_PRIO
+         value of 1 is appropriate in the common case, which is real-time
          applications that do not have any CPU-bound threads.
  
          Some real-time applications might not have a single real-time
          thread that saturates a given CPU, but instead might have
          multiple real-time threads that, taken together, fully utilize
-         that CPU.  In this case, you should set RCU_BOOST_PRIO to
+         that CPU.  In this case, you should set RCU_KTHREAD_PRIO to
          a priority higher than the lowest-priority thread that is
          conspiring to prevent the CPU from running any non-real-time
          tasks.  For example, if one thread at priority 10 and another
          thread at priority 5 are between themselves fully consuming
-         the CPU time on a given CPU, then RCU_BOOST_PRIO should be
+         the CPU time on a given CPU, then RCU_KTHREAD_PRIO should be
          set to priority 6 or higher.
  
          Specify the real-time priority, or take the default if unsure.
@@@ -715,7 -710,7 +710,7 @@@ config RCU_BOOST_DELA
  
  config RCU_NOCB_CPU
        bool "Offload RCU callback processing from boot-selected CPUs"
-       depends on TREE_RCU || TREE_PREEMPT_RCU
+       depends on TREE_RCU || PREEMPT_RCU
        default n
        help
          Use this option to reduce OS jitter for aggressive HPC or
  choice
        prompt "Build-forced no-CBs CPUs"
        default RCU_NOCB_CPU_NONE
+       depends on RCU_NOCB_CPU
        help
          This option allows no-CBs CPUs (whose RCU callbacks are invoked
          from kthreads rather than from softirq context) to be specified
  
  config RCU_NOCB_CPU_NONE
        bool "No build_forced no-CBs CPUs"
-       depends on RCU_NOCB_CPU
        help
          This option does not force any of the CPUs to be no-CBs CPUs.
          Only CPUs designated by the rcu_nocbs= boot parameter will be
  
  config RCU_NOCB_CPU_ZERO
        bool "CPU 0 is a build_forced no-CBs CPU"
-       depends on RCU_NOCB_CPU
        help
          This option forces CPU 0 to be a no-CBs CPU, so that its RCU
          callbacks are invoked by a per-CPU kthread whose name begins
  
  config RCU_NOCB_CPU_ALL
        bool "All CPUs are build_forced no-CBs CPUs"
-       depends on RCU_NOCB_CPU
        help
          This option forces all CPUs to be no-CBs CPUs.  The rcu_nocbs=
          boot parameter will be ignored.  All CPUs' RCU callbacks will
@@@ -900,14 -893,6 +893,6 @@@ config ARCH_SUPPORTS_INT12
  config ARCH_WANT_NUMA_VARIABLE_LOCALITY
        bool
  
- config NUMA_BALANCING_DEFAULT_ENABLED
-       bool "Automatically enable NUMA aware memory/task placement"
-       default y
-       depends on NUMA_BALANCING
-       help
-         If set, automatic NUMA balancing will be enabled if running on a NUMA
-         machine.
  config NUMA_BALANCING
        bool "Memory placement aware NUMA scheduler"
        depends on ARCH_SUPPORTS_NUMA_BALANCING
  
          This system will be inactive on UMA systems.
  
+ config NUMA_BALANCING_DEFAULT_ENABLED
+       bool "Automatically enable NUMA aware memory/task placement"
+       default y
+       depends on NUMA_BALANCING
+       help
+         If set, automatic NUMA balancing will be enabled if running on a NUMA
+         machine.
  menuconfig CGROUPS
        boolean "Control Group support"
        select KERNFS
@@@ -979,32 -972,17 +972,17 @@@ config CGROUP_CPUACC
          Provides a simple Resource Controller for monitoring the
          total CPU consumed by the tasks in a cgroup.
  
- config RESOURCE_COUNTERS
-       bool "Resource counters"
-       help
-         This option enables controller independent resource accounting
-         infrastructure that works with cgroups.
+ config PAGE_COUNTER
+        bool
  
  config MEMCG
        bool "Memory Resource Controller for Control Groups"
-       depends on RESOURCE_COUNTERS
+       select PAGE_COUNTER
        select EVENTFD
        help
          Provides a memory resource controller that manages both anonymous
          memory and page cache. (See Documentation/cgroups/memory.txt)
  
-         Note that setting this option increases fixed memory overhead
-         associated with each page of memory in the system. By this,
-         8(16)bytes/PAGE_SIZE on 32(64)bit system will be occupied by memory
-         usage tracking struct at boot. Total amount of this is printed out
-         at boot.
-         Only enable when you're ok with these trade offs and really
-         sure you need the memory resource controller. Even when you enable
-         this, you can set "cgroup_disable=memory" at your boot option to
-         disable memory resource controller and you can avoid overheads.
-         (and lose benefits of memory resource controller)
  config MEMCG_SWAP
        bool "Memory Resource Controller Swap Extension"
        depends on MEMCG && SWAP
@@@ -1055,7 -1033,8 +1033,8 @@@ config MEMCG_KME
  
  config CGROUP_HUGETLB
        bool "HugeTLB Resource Controller for Control Groups"
-       depends on RESOURCE_COUNTERS && HUGETLB_PAGE
+       depends on HUGETLB_PAGE
+       select PAGE_COUNTER
        default n
        help
          Provides a cgroup Resource Controller for HugeTLB pages.
@@@ -1301,6 -1280,22 +1280,22 @@@ source "usr/Kconfig
  
  endif
  
+ config INIT_FALLBACK
+       bool "Fall back to defaults if init= parameter is bad"
+       default y
+       help
+         If enabled, the kernel will try the default init binaries if an
+         explicit request from the init= parameter fails.
+         This can have unexpected effects.  For example, booting
+         with init=/sbin/kiosk_app will run /sbin/init or even /bin/sh
+         if /sbin/kiosk_app cannot be executed.
+         The default value of Y is consistent with historical behavior.
+         Selecting N is likely to be more appropriate for most uses,
+         especially on kiosks and on kernels that are intended to be
+         run under the control of a script.
  config CC_OPTIMIZE_FOR_SIZE
        bool "Optimize for size"
        help
  
          If unsure, say N.
  
 +config LTO_MENU
 +      bool "Enable gcc link time optimization (LTO)"
 +      # Only tested on X86 for now. For other architectures you likely
 +      # have to fix some things first, like adding asmlinkages etc.
 +      depends on X86
 +      # lto does not support excluding flags for specific files
 +      # right now. Can be removed if that is fixed.
 +      depends on !FUNCTION_TRACER
 +      help
 +        With this option gcc will do whole program optimizations for
 +        the whole kernel and module. This increases compile time, but can
 +        lead to better code. It allows gcc to inline functions between
 +        different files and do other optimization.  It might also trigger
 +        bugs due to more aggressive optimization. It allows gcc to drop unused
 +        code. On smaller monolithic kernel configurations
 +        it usually leads to smaller kernels, especially when modules
 +        are disabled.
 +
 +        With this option gcc will also do some global checking over
 +        different source files. It also disables a number of kernel
 +        features.
 +
 +        This option is recommended for release builds. With LTO
 +        the kernel always has to be re-optimized (but not re-parsed)
 +        on each build.
 +
 +        This requires a gcc 4.8 or later compiler and
 +        Linux binutils 2.21.51.0.3 or later.  gcc 4.9 builds significantly
 +        faster than 4.8 It does not currently work with a FSF release of
 +        binutils or with the gold linker.
 +
 +        On larger configurations this may need more than 4GB of RAM.
 +        It will likely not work on those with a 32bit compiler.
 +
 +        When the toolchain support is not available this will (hopefully)
 +        be automatically disabled.
 +
 +        For more information see Documentation/lto-build
 +
 +config LTO_DISABLE
 +         bool "Disable LTO again"
 +         depends on LTO_MENU
 +         default n
 +         help
 +           This option is merely here so that allyesconfig or allmodconfig do
 +           not enable LTO. If you want to actually use LTO do not enable.
 +
 +config LTO
 +      bool
 +      default y
 +      depends on LTO_MENU && !LTO_DISABLE
 +
 +config LTO_DEBUG
 +      bool "Enable LTO compile time debugging"
 +      depends on LTO
 +      help
 +        Enable LTO debugging in the compiler. The compiler dumps
 +        some log files that make it easier to figure out LTO
 +        behavior. The log files also allow to reconstruct
 +        the global inlining and a global callgraph.
 +        They however add some (single threaded) cost to the
 +        compilation.  When in doubt do not enable.
 +
 +config LTO_CP_CLONE
 +      bool "Allow aggressive cloning for function specialization"
 +      depends on LTO
 +      help
 +        Allow the compiler to clone and specialize functions for specific
 +        arguments when it determines these arguments are very commonly
 +        called.  Experimential. Will increase text size.
 +
  config SYSCTL
        bool
  
@@@ -1412,6 -1336,10 +1407,10 @@@ config SYSCTL_ARCH_UNALIGN_ALLO
  config HAVE_PCSPKR_PLATFORM
        bool
  
+ # interpreter that classic socket filters depend on
+ config BPF
+       bool
  menuconfig EXPERT
        bool "Configure standard kernel features (expert users)"
        # Unhide debug options, to make the on-by-default options visible
@@@ -1592,6 -1520,16 +1591,16 @@@ config EVENTF
  
          If unsure, say Y.
  
+ # syscall, maps, verifier
+ config BPF_SYSCALL
+       bool "Enable bpf() system call" if EXPERT
+       select ANON_INODES
+       select BPF
+       default n
+       help
+         Enable the bpf() system call that allows to manipulate eBPF
+         programs and maps via file descriptors.
  config SHMEM
        bool "Use full shmem filesystem" if EXPERT
        default y
@@@ -1890,8 -1828,6 +1899,8 @@@ config MODULE_FORCE_UNLOA
  
  config MODVERSIONS
        bool "Module versioning support"
 +      # LTO should work with gcc 4.9
 +      depends on !LTO
        help
          Usually, you have to use modules compiled with your kernel.
          Saying Y here makes it sometimes possible to use modules
diff --combined kernel/gcov/Kconfig
index 7ad56807defd9be1dbe2568f6ebbdba8ac9a193d,c92e44855ddda18843a2b7c9102a323811d27917..6ca0b99e5f0a2283e0f3627ecc53010639330c07
@@@ -2,7 -2,7 +2,7 @@@ menu "GCOV-based kernel profiling
  
  config GCOV_KERNEL
        bool "Enable gcov-based kernel profiling"
 -      depends on DEBUG_FS
 +      depends on DEBUG_FS && !LTO
        select CONSTRUCTORS if !UML
        default n
        ---help---
        Note that the debugfs filesystem has to be mounted to access
        profiling data.
  
+ config ARCH_HAS_GCOV_PROFILE_ALL
+       def_bool n
  config GCOV_PROFILE_ALL
        bool "Profile entire Kernel"
        depends on GCOV_KERNEL
-       depends on SUPERH || S390 || X86 || PPC || MICROBLAZE || ARM
+       depends on ARCH_HAS_GCOV_PROFILE_ALL
        default n
        ---help---
        This options activates profiling for the entire kernel.
diff --combined lib/Kconfig.debug
index 29d063896df41670eac00e95581112256b814d3b,5f2ce616c0462db9b9055528110268385b2b653e..8864e905d4ae1f2d16edbeb3d2e67cca716ef7a0
@@@ -204,7 -204,7 +204,7 @@@ config STRIP_ASM_SYM
  
  config READABLE_ASM
          bool "Generate readable assembler code"
 -        depends on DEBUG_KERNEL
 +        depends on DEBUG_KERNEL && !LTO
          help
            Disable some compiler optimizations that tend to generate human unreadable
            assembler output. This may make the kernel slightly slower, but it helps
@@@ -227,6 -227,22 +227,22 @@@ config UNUSED_SYMBOL
          you really need it, and what the merge plan to the mainline kernel for
          your module is.
  
+ config PAGE_OWNER
+       bool "Track page owner"
+       depends on DEBUG_KERNEL && STACKTRACE_SUPPORT
+       select DEBUG_FS
+       select STACKTRACE
+       select PAGE_EXTENSION
+       help
+         This keeps track of what call chain is the owner of a page, may
+         help to find bare alloc_page(s) leaks. Even if you include this
+         feature on your build, it is disabled in default. You should pass
+         "page_owner=on" to boot parameter in order to enable it. Eats
+         a fair amount of memory if enabled. See tools/vm/page_owner_sort.c
+         for user-space helper.
+         If unsure, say N.
  config DEBUG_FS
        bool "Debug Filesystem"
        help
@@@ -1238,21 -1254,9 +1254,9 @@@ config RCU_CPU_STALL_TIMEOU
          RCU grace period persists, additional CPU stall warnings are
          printed at more widely spaced intervals.
  
- config RCU_CPU_STALL_VERBOSE
-       bool "Print additional per-task information for RCU_CPU_STALL_DETECTOR"
-       depends on TREE_PREEMPT_RCU
-       default y
-       help
-         This option causes RCU to printk detailed per-task information
-         for any tasks that are stalling the current RCU grace period.
-         Say N if you are unsure.
-         Say Y if you want to enable such checks.
  config RCU_CPU_STALL_INFO
        bool "Print additional diagnostics on RCU CPU stall"
-       depends on (TREE_RCU || TREE_PREEMPT_RCU) && DEBUG_KERNEL
+       depends on (TREE_RCU || PREEMPT_RCU) && DEBUG_KERNEL
        default n
        help
          For each stalled CPU that is aware of the current RCU grace