Merge commit 'v2.6.34-rc7' into perf/nmi
authorFrederic Weisbecker <fweisbec@gmail.com>
Wed, 12 May 2010 21:19:01 +0000 (23:19 +0200)
committerFrederic Weisbecker <fweisbec@gmail.com>
Wed, 12 May 2010 21:20:33 +0000 (23:20 +0200)
Merge reason: catch up with latest softlockup detector changes.

1  2 
arch/x86/Kconfig
arch/x86/kernel/apic/nmi.c
init/Kconfig
kernel/Makefile
kernel/sysctl.c
lib/Kconfig.debug

diff --combined arch/x86/Kconfig
@@@ -31,6 -31,7 +31,7 @@@ config X8
        select ARCH_WANT_FRAME_POINTERS
        select HAVE_DMA_ATTRS
        select HAVE_KRETPROBES
+       select HAVE_OPTPROBES
        select HAVE_FTRACE_MCOUNT_RECORD
        select HAVE_DYNAMIC_FTRACE
        select HAVE_FUNCTION_TRACER
@@@ -45,6 -46,7 +46,7 @@@
        select HAVE_GENERIC_DMA_COHERENT if X86_32
        select HAVE_EFFICIENT_UNALIGNED_ACCESS
        select USER_STACKTRACE_SUPPORT
+       select HAVE_REGS_AND_STACK_ACCESS_API
        select HAVE_DMA_API_DEBUG
        select HAVE_KERNEL_GZIP
        select HAVE_KERNEL_BZIP2
@@@ -52,7 -54,6 +54,7 @@@
        select HAVE_KERNEL_LZO
        select HAVE_HW_BREAKPOINT
        select PERF_EVENTS
 +      select PERF_EVENTS_NMI
        select ANON_INODES
        select HAVE_ARCH_KMEMCHECK
        select HAVE_USER_RETURN_NOTIFIER
@@@ -101,6 -102,9 +103,9 @@@ config ZONE_DM
  config SBUS
        bool
  
+ config NEED_DMA_MAP_STATE
+        def_bool (X86_64 || DMAR || DMA_API_DEBUG)
  config GENERIC_ISA_DMA
        def_bool y
  
@@@ -184,6 -188,9 +189,9 @@@ config ARCH_SUPPORTS_OPTIMIZED_INLININ
  config ARCH_SUPPORTS_DEBUG_PAGEALLOC
        def_bool y
  
+ config HAVE_EARLY_RES
+       def_bool y
  config HAVE_INTEL_TXT
        def_bool y
        depends on EXPERIMENTAL && DMAR && ACPI
@@@ -389,8 -396,12 +397,12 @@@ config X86_ELA
  
  config X86_MRST
         bool "Moorestown MID platform"
+       depends on PCI
+       depends on PCI_GOANY
        depends on X86_32
        depends on X86_EXTENDED_PLATFORM
+       depends on X86_IO_APIC
+       select APB_TIMER
        ---help---
          Moorestown is Intel's Low Power Intel Architecture (LPIA) based Moblin
          Internet Device(MID) platform. Moorestown consists of two chips:
@@@ -425,6 -436,7 +437,7 @@@ config X86_32_NON_STANDAR
  config X86_NUMAQ
        bool "NUMAQ (IBM/Sequent)"
        depends on X86_32_NON_STANDARD
+       depends on PCI
        select NUMA
        select X86_MPPARSE
        ---help---
@@@ -569,6 -581,18 +582,18 @@@ config PARAVIRT_DEBU
          Enable to debug paravirt_ops internals.  Specifically, BUG if
          a paravirt_op is missing when it is called.
  
+ config NO_BOOTMEM
+       default y
+       bool "Disable Bootmem code"
+       ---help---
+         Use early_res directly instead of bootmem before slab is ready.
+               - allocator (buddy) [generic]
+               - early allocator (bootmem) [generic]
+               - very early allocator (reserve_early*()) [x86]
+               - very very early allocator (early brk model) [x86]
+         So reduce one layer between early allocator to final allocator
  config MEMTEST
        bool "Memtest"
        ---help---
@@@ -613,6 -637,16 +638,16 @@@ config HPET_EMULATE_RT
        def_bool y
        depends on HPET_TIMER && (RTC=y || RTC=m || RTC_DRV_CMOS=m || RTC_DRV_CMOS=y)
  
+ config APB_TIMER
+        def_bool y if MRST
+        prompt "Langwell APB Timer Support" if X86_MRST
+        help
+          APB timer is the replacement for 8254, HPET on X86 MID platforms.
+          The APBT provides a stable time base on SMP
+          systems, unlike the TSC, but it is more expensive to access,
+          as it is off-chip. APB timers are always running regardless of CPU
+          C states, they are used as per CPU clockevent device when possible.
  # Mark as embedded because too many people got it wrong.
  # The code disables itself when not needed.
  config DMI
@@@ -628,7 -662,7 +663,7 @@@ config GART_IOMM
        bool "GART IOMMU support" if EMBEDDED
        default y
        select SWIOTLB
-       depends on X86_64 && PCI
+       depends on X86_64 && PCI && K8_NB
        ---help---
          Support for full DMA access of devices with 32bit memory access only
          on systems with more than 3GB. This is usually needed for USB,
@@@ -990,12 -1024,6 +1025,6 @@@ config X86_CPUI
          with major 203 and minors 0 to 31 for /dev/cpu/0/cpuid to
          /dev/cpu/31/cpuid.
  
- config X86_CPU_DEBUG
-       tristate "/sys/kernel/debug/x86/cpu/* - CPU Debug support"
-       ---help---
-         If you select this option, this will provide various x86 CPUs
-         information through debugfs.
  choice
        prompt "High Memory Support"
        default HIGHMEM4G if !X86_NUMAQ
@@@ -1188,8 -1216,8 +1217,8 @@@ config NUMA_EM
  
  config NODES_SHIFT
        int "Maximum NUMA Nodes (as a power of 2)" if !MAXSMP
-       range 1 9
-       default "9" if MAXSMP
+       range 1 10
+       default "10" if MAXSMP
        default "6" if X86_64
        default "4" if X86_NUMAQ
        default "3"
@@@ -2033,7 -2061,7 +2062,7 @@@ endif # X86_3
  
  config K8_NB
        def_bool y
-       depends on AGP_AMD64 || (X86_64 && (GART_IOMMU || (PCI && NUMA)))
+       depends on CPU_SUP_AMD && PCI
  
  source "drivers/pcmcia/Kconfig"
  
@@@ -18,6 -18,7 +18,7 @@@
  #include <linux/delay.h>
  #include <linux/interrupt.h>
  #include <linux/module.h>
+ #include <linux/slab.h>
  #include <linux/sysdev.h>
  #include <linux/sysctl.h>
  #include <linux/percpu.h>
@@@ -177,7 -178,7 +178,7 @@@ int __init check_nmi_watchdog(void
  error:
        if (nmi_watchdog == NMI_IO_APIC) {
                if (!timer_through_8259)
-                       disable_8259A_irq(0);
+                       legacy_pic->chip->mask(0);
                on_each_cpu(__acpi_nmi_disable, NULL, 1);
        }
  
@@@ -400,6 -401,13 +401,6 @@@ nmi_watchdog_tick(struct pt_regs *regs
        int cpu = smp_processor_id();
        int rc = 0;
  
 -      /* check for other users first */
 -      if (notify_die(DIE_NMI, "nmi", regs, reason, 2, SIGINT)
 -                      == NOTIFY_STOP) {
 -              rc = 1;
 -              touched = 1;
 -      }
 -
        sum = get_timer_irqs(cpu);
  
        if (__get_cpu_var(nmi_touch)) {
  
        /* We can be called before check_nmi_watchdog, hence NULL check. */
        if (cpumask_test_cpu(cpu, to_cpumask(backtrace_mask))) {
-               static DEFINE_SPINLOCK(lock);   /* Serialise the printks */
+               static DEFINE_RAW_SPINLOCK(lock); /* Serialise the printks */
  
-               spin_lock(&lock);
+               raw_spin_lock(&lock);
                printk(KERN_WARNING "NMI backtrace for cpu %d\n", cpu);
                show_regs(regs);
                dump_stack();
-               spin_unlock(&lock);
+               raw_spin_unlock(&lock);
                cpumask_clear_cpu(cpu, to_cpumask(backtrace_mask));
  
                rc = 1;
                 * Ayiee, looks like this CPU is stuck ...
                 * wait a few IRQs (5 seconds) before doing the oops ...
                 */
-               __this_cpu_inc(per_cpu_var(alert_counter));
-               if (__this_cpu_read(per_cpu_var(alert_counter)) == 5 * nmi_hz)
+               __this_cpu_inc(alert_counter);
+               if (__this_cpu_read(alert_counter) == 5 * nmi_hz)
                        /*
                         * die_nmi will return ONLY if NOTIFY_STOP happens..
                         */
                                regs, panic_on_timeout);
        } else {
                __get_cpu_var(last_irq_sum) = sum;
-               __this_cpu_write(per_cpu_var(alert_counter), 0);
+               __this_cpu_write(alert_counter, 0);
        }
  
        /* see if the nmi watchdog went off */
diff --combined init/Kconfig
@@@ -396,6 -396,22 +396,22 @@@ config RCU_FANOUT_EXAC
  
          Say N if unsure.
  
+ config RCU_FAST_NO_HZ
+       bool "Accelerate last non-dyntick-idle CPU's grace periods"
+       depends on TREE_RCU && NO_HZ && SMP
+       default n
+       help
+         This option causes RCU to attempt to accelerate grace periods
+         in order to allow the final CPU to enter dynticks-idle state
+         more quickly.  On the other hand, this option increases the
+         overhead of the dynticks-idle checking, particularly on systems
+         with large numbers of CPUs.
+         Say Y if energy efficiency is critically important, particularly
+               if you have relatively few CPUs.
+         Say N if you are unsure.
  config TREE_RCU_TRACE
        def_bool RCU_TRACE && ( TREE_RCU || TREE_PREEMPT_RCU )
        select DEBUG_FS
@@@ -445,59 -461,9 +461,9 @@@ config LOG_BUF_SHIF
  config HAVE_UNSTABLE_SCHED_CLOCK
        bool
  
- config GROUP_SCHED
-       bool "Group CPU scheduler"
-       depends on EXPERIMENTAL
-       default n
-       help
-         This feature lets CPU scheduler recognize task groups and control CPU
-         bandwidth allocation to such task groups.
-         In order to create a group from arbitrary set of processes, use
-         CONFIG_CGROUPS. (See Control Group support.)
- config FAIR_GROUP_SCHED
-       bool "Group scheduling for SCHED_OTHER"
-       depends on GROUP_SCHED
-       default GROUP_SCHED
- config RT_GROUP_SCHED
-       bool "Group scheduling for SCHED_RR/FIFO"
-       depends on EXPERIMENTAL
-       depends on GROUP_SCHED
-       default n
-       help
-         This feature lets you explicitly allocate real CPU bandwidth
-         to users or control groups (depending on the "Basis for grouping tasks"
-         setting below. If enabled, it will also make it impossible to
-         schedule realtime tasks for non-root users until you allocate
-         realtime bandwidth for them.
-         See Documentation/scheduler/sched-rt-group.txt for more information.
- choice
-       depends on GROUP_SCHED
-       prompt "Basis for grouping tasks"
-       default USER_SCHED
- config USER_SCHED
-       bool "user id"
-       help
-         This option will choose userid as the basis for grouping
-         tasks, thus providing equal CPU bandwidth to each user.
- config CGROUP_SCHED
-       bool "Control groups"
-       depends on CGROUPS
-       help
-         This option allows you to create arbitrary task groups
-         using the "cgroup" pseudo filesystem and control
-         the cpu bandwidth allocated to each such task group.
-         Refer to Documentation/cgroups/cgroups.txt for more
-         information on "cgroup" pseudo filesystem.
- endchoice
  menuconfig CGROUPS
        boolean "Control Group support"
+       depends on EVENTFD
        help
          This option adds support for grouping sets of processes together, for
          use with process control subsystems such as Cpusets, CFS, memory
@@@ -616,6 -582,36 +582,36 @@@ config CGROUP_MEM_RES_CTLR_SWA
          Now, memory usage of swap_cgroup is 2 bytes per entry. If swap page
          size is 4096bytes, 512k per 1Gbytes of swap.
  
+ menuconfig CGROUP_SCHED
+       bool "Group CPU scheduler"
+       depends on EXPERIMENTAL && CGROUPS
+       default n
+       help
+         This feature lets CPU scheduler recognize task groups and control CPU
+         bandwidth allocation to such task groups. It uses cgroups to group
+         tasks.
+ if CGROUP_SCHED
+ config FAIR_GROUP_SCHED
+       bool "Group scheduling for SCHED_OTHER"
+       depends on CGROUP_SCHED
+       default CGROUP_SCHED
+ config RT_GROUP_SCHED
+       bool "Group scheduling for SCHED_RR/FIFO"
+       depends on EXPERIMENTAL
+       depends on CGROUP_SCHED
+       default n
+       help
+         This feature lets you explicitly allocate real CPU bandwidth
+         to users or control groups (depending on the "Basis for grouping tasks"
+         setting below. If enabled, it will also make it impossible to
+         schedule realtime tasks for non-root users until you allocate
+         realtime bandwidth for them.
+         See Documentation/scheduler/sched-rt-group.txt for more information.
+ endif #CGROUP_SCHED
  endif # CGROUPS
  
  config MM_OWNER
@@@ -946,11 -942,6 +942,11 @@@ config PERF_USE_VMALLO
        help
          See tools/perf/design.txt for details
  
 +config PERF_EVENTS_NMI
 +      bool
 +      help
 +        Arch has support for nmi_watchdog
 +
  menu "Kernel Performance Events And Counters"
  
  config PERF_EVENTS
@@@ -1104,7 -1095,7 +1100,7 @@@ config MMAP_ALLOW_UNINITIALIZE
          See Documentation/nommu-mmap.txt for more information.
  
  config PROFILING
-       bool "Profiling support (EXPERIMENTAL)"
+       bool "Profiling support"
        help
          Say Y here to enable the extended profiling support mechanisms used
          by profilers such as OProfile.
@@@ -1254,4 -1245,8 +1250,8 @@@ source "block/Kconfig
  config PREEMPT_NOTIFIERS
        bool
  
+ config PADATA
+       depends on SMP
+       bool
  source "kernel/Kconfig.locks"
diff --combined kernel/Makefile
@@@ -10,7 -10,8 +10,8 @@@ obj-y     = sched.o fork.o exec_domain.
            kthread.o wait.o kfifo.o sys_ni.o posix-cpu-timers.o mutex.o \
            hrtimer.o rwsem.o nsproxy.o srcu.o semaphore.o \
            notifier.o ksysfs.o pm_qos_params.o sched_clock.o cred.o \
-           async.o
+           async.o range.o
+ obj-$(CONFIG_HAVE_EARLY_RES) += early_res.o
  obj-y += groups.o
  
  ifdef CONFIG_FUNCTION_TRACER
@@@ -76,7 -77,6 +77,7 @@@ obj-$(CONFIG_AUDIT_TREE) += audit_tree.
  obj-$(CONFIG_KPROBES) += kprobes.o
  obj-$(CONFIG_KGDB) += kgdb.o
  obj-$(CONFIG_DETECT_SOFTLOCKUP) += softlockup.o
 +obj-$(CONFIG_NMI_WATCHDOG) += nmi_watchdog.o
  obj-$(CONFIG_DETECT_HUNG_TASK) += hung_task.o
  obj-$(CONFIG_GENERIC_HARDIRQS) += irq/
  obj-$(CONFIG_SECCOMP) += seccomp.o
@@@ -91,6 -91,9 +92,9 @@@ obj-$(CONFIG_TASK_DELAY_ACCT) += delaya
  obj-$(CONFIG_TASKSTATS) += taskstats.o tsacct.o
  obj-$(CONFIG_TRACEPOINTS) += tracepoint.o
  obj-$(CONFIG_LATENCYTOP) += latencytop.o
+ obj-$(CONFIG_BINFMT_ELF) += elfcore.o
+ obj-$(CONFIG_COMPAT_BINFMT_ELF) += elfcore.o
+ obj-$(CONFIG_BINFMT_ELF_FDPIC) += elfcore.o
  obj-$(CONFIG_FUNCTION_TRACER) += trace/
  obj-$(CONFIG_TRACING) += trace/
  obj-$(CONFIG_X86_DS) += trace/
@@@ -101,6 -104,7 +105,7 @@@ obj-$(CONFIG_SLOW_WORK_DEBUG) += slow-w
  obj-$(CONFIG_PERF_EVENTS) += perf_event.o
  obj-$(CONFIG_HAVE_HW_BREAKPOINT) += hw_breakpoint.o
  obj-$(CONFIG_USER_RETURN_NOTIFIER) += user-return-notifier.o
+ obj-$(CONFIG_PADATA) += padata.o
  
  ifneq ($(CONFIG_SCHED_OMIT_FRAME_POINTER),y)
  # According to Alan Modra <alan@linuxcare.com.au>, the -fno-omit-frame-pointer is
diff --combined kernel/sysctl.c
@@@ -23,6 -23,7 +23,7 @@@
  #include <linux/swap.h>
  #include <linux/slab.h>
  #include <linux/sysctl.h>
+ #include <linux/signal.h>
  #include <linux/proc_fs.h>
  #include <linux/security.h>
  #include <linux/ctype.h>
@@@ -50,6 -51,7 +51,7 @@@
  #include <linux/ftrace.h>
  #include <linux/slow-work.h>
  #include <linux/perf_event.h>
+ #include <linux/kprobes.h>
  
  #include <asm/uaccess.h>
  #include <asm/processor.h>
  #include <asm/stacktrace.h>
  #include <asm/io.h>
  #endif
+ #ifdef CONFIG_BSD_PROCESS_ACCT
+ #include <linux/acct.h>
+ #endif
+ #ifdef CONFIG_RT_MUTEXES
+ #include <linux/rtmutex.h>
+ #endif
+ #if defined(CONFIG_PROVE_LOCKING) || defined(CONFIG_LOCK_STAT)
+ #include <linux/lockdep.h>
+ #endif
+ #ifdef CONFIG_CHR_DEV_SG
+ #include <scsi/sg.h>
+ #endif
  
 +#ifdef CONFIG_NMI_WATCHDOG
 +#include <linux/nmi.h>
 +#endif
 +
  
  #if defined(CONFIG_SYSCTL)
  
  /* External variables not in a header file. */
- extern int C_A_D;
- extern int print_fatal_signals;
  extern int sysctl_overcommit_memory;
  extern int sysctl_overcommit_ratio;
  extern int sysctl_panic_on_oom;
@@@ -91,9 -99,6 +103,6 @@@ extern int sysctl_nr_open_min, sysctl_n
  #ifndef CONFIG_MMU
  extern int sysctl_nr_trim_pages;
  #endif
- #ifdef CONFIG_RCU_TORTURE_TEST
- extern int rcutorture_runnable;
- #endif /* #ifdef CONFIG_RCU_TORTURE_TEST */
  #ifdef CONFIG_BLOCK
  extern int blk_iopoll_enabled;
  #endif
@@@ -123,14 -128,6 +132,6 @@@ static int min_percpu_pagelist_fract = 
  
  static int ngroups_max = NGROUPS_MAX;
  
- #ifdef CONFIG_MODULES
- extern char modprobe_path[];
- extern int modules_disabled;
- #endif
- #ifdef CONFIG_CHR_DEV_SG
- extern int sg_big_buff;
- #endif
  #ifdef CONFIG_SPARC
  #include <asm/system.h>
  #endif
@@@ -152,10 -149,6 +153,6 @@@ extern int sysctl_userprocess_debug
  extern int spin_retry;
  #endif
  
- #ifdef CONFIG_BSD_PROCESS_ACCT
- extern int acct_parm[];
- #endif
  #ifdef CONFIG_IA64
  extern int no_unaligned_warning;
  extern int unaligned_dump_stack;
  
  extern struct ratelimit_state printk_ratelimit_state;
  
- #ifdef CONFIG_RT_MUTEXES
- extern int max_lock_depth;
- #endif
  #ifdef CONFIG_PROC_SYSCTL
  static int proc_do_cad_pid(struct ctl_table *table, int write,
                  void __user *buffer, size_t *lenp, loff_t *ppos);
@@@ -205,9 -194,6 +198,6 @@@ extern struct ctl_table epoll_table[]
  int sysctl_legacy_va_layout;
  #endif
  
- extern int prove_locking;
- extern int lock_stat;
  /* The default sysctl tables: */
  
  static struct ctl_table root_table[] = {
@@@ -696,16 -682,7 +686,16 @@@ static struct ctl_table kern_table[] = 
                .mode           = 0444,
                .proc_handler   = proc_dointvec,
        },
 -#if defined(CONFIG_X86_LOCAL_APIC) && defined(CONFIG_X86)
 +#if defined(CONFIG_NMI_WATCHDOG)
 +      {
 +              .procname       = "nmi_watchdog",
 +              .data           = &nmi_watchdog_enabled,
 +              .maxlen         = sizeof (int),
 +              .mode           = 0644,
 +              .proc_handler   = proc_nmi_enabled,
 +      },
 +#endif
 +#if defined(CONFIG_X86_LOCAL_APIC) && defined(CONFIG_X86) && !defined(CONFIG_NMI_WATCHDOG)
        {
                .procname       = "unknown_nmi_panic",
                .data           = &unknown_nmi_panic,
@@@ -1454,7 -1431,7 +1444,7 @@@ static struct ctl_table fs_table[] = 
  };
  
  static struct ctl_table debug_table[] = {
- #if defined(CONFIG_X86) || defined(CONFIG_PPC)
+ #if defined(CONFIG_X86) || defined(CONFIG_PPC) || defined(CONFIG_SPARC)
        {
                .procname       = "exception-trace",
                .data           = &show_unhandled_signals,
                .mode           = 0644,
                .proc_handler   = proc_dointvec
        },
+ #endif
+ #if defined(CONFIG_OPTPROBES)
+       {
+               .procname       = "kprobes-optimization",
+               .data           = &sysctl_kprobes_optimization,
+               .maxlen         = sizeof(int),
+               .mode           = 0644,
+               .proc_handler   = proc_kprobes_optimization_handler,
+               .extra1         = &zero,
+               .extra2         = &one,
+       },
  #endif
        { }
  };
diff --combined lib/Kconfig.debug
@@@ -103,7 -103,8 +103,8 @@@ config HEADERS_CHEC
  
  config DEBUG_SECTION_MISMATCH
        bool "Enable full Section mismatch analysis"
-       depends on UNDEFINED
+       depends on UNDEFINED || (BLACKFIN)
+       default y
        # This option is on purpose disabled for now.
        # It will be enabled when we are down to a reasonable number
        # of section mismatch warnings (< 10 for an allyesconfig build)
@@@ -170,18 -171,6 +171,18 @@@ config DETECT_SOFTLOCKU
           can be detected via the NMI-watchdog, on platforms that
           support it.)
  
 +config NMI_WATCHDOG
 +      bool "Detect Hard Lockups with an NMI Watchdog"
 +      depends on DEBUG_KERNEL && PERF_EVENTS && PERF_EVENTS_NMI
 +      help
 +        Say Y here to enable the kernel to use the NMI as a watchdog
 +        to detect hard lockups.  This is useful when a cpu hangs for no
 +        reason but can still respond to NMIs.  A backtrace is displayed
 +        for reviewing and reporting.
 +
 +        The overhead should be minimal, just an extra NMI every few
 +        seconds.
 +
  config BOOTPARAM_SOFTLOCKUP_PANIC
        bool "Panic (Reboot) On Soft Lockups"
        depends on DETECT_SOFTLOCKUP
@@@ -367,7 -356,7 +368,7 @@@ config SLUB_STAT
  config DEBUG_KMEMLEAK
        bool "Kernel memory leak detector"
        depends on DEBUG_KERNEL && EXPERIMENTAL && !MEMORY_HOTPLUG && \
-               (X86 || ARM || PPC || S390)
+               (X86 || ARM || PPC || S390 || SPARC64 || SUPERH || MICROBLAZE)
  
        select DEBUG_FS if SYSFS
        select STACKTRACE if STACKTRACE_SUPPORT
@@@ -511,6 -500,18 +512,18 @@@ config PROVE_LOCKIN
  
         For more details, see Documentation/lockdep-design.txt.
  
+ config PROVE_RCU
+       bool "RCU debugging: prove RCU correctness"
+       depends on PROVE_LOCKING
+       default n
+       help
+        This feature enables lockdep extensions that check for correct
+        use of RCU APIs.  This is currently under development.  Say Y
+        if you want to debug RCU usage or help work on the PROVE_RCU
+        feature.
+        Say N if you are unsure.
  config LOCKDEP
        bool
        depends on DEBUG_KERNEL && TRACE_IRQFLAGS_SUPPORT && STACKTRACE_SUPPORT && LOCKDEP_SUPPORT
@@@ -532,6 -533,14 +545,14 @@@ config LOCK_STA
  
         For more details, see Documentation/lockstat.txt
  
+        This also enables lock events required by "perf lock",
+        subcommand of perf.
+        If you want to use "perf lock", you also need to turn on
+        CONFIG_EVENT_TRACING.
+        CONFIG_LOCK_STAT defines "contended" and "acquired" lock events.
+        (CONFIG_LOCKDEP defines "acquire" and "release" events.)
  config DEBUG_LOCKDEP
        bool "Lock dependency engine debugging"
        depends on DEBUG_KERNEL && LOCKDEP
@@@ -777,10 -786,22 +798,22 @@@ config RCU_CPU_STALL_DETECTO
          CPUs are delaying the current grace period, but only when
          the grace period extends for excessive time periods.
  
-         Say Y if you want RCU to perform such checks.
+         Say N if you want to disable such checks.
+         Say Y if you are unsure.
+ config RCU_CPU_STALL_VERBOSE
+       bool "Print additional per-task information for RCU_CPU_STALL_DETECTOR"
+       depends on RCU_CPU_STALL_DETECTOR && TREE_PREEMPT_RCU
+       default n
+       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 KPROBES_SANITY_TEST
        bool "Kprobes sanity tests"
        depends on DEBUG_KERNEL
@@@ -852,8 -873,7 +885,7 @@@ config DEBUG_FORCE_WEAK_PER_CP
  
  config LKDTM
        tristate "Linux Kernel Dump Test Tool Module"
-       depends on DEBUG_KERNEL
-       depends on KPROBES
+       depends on DEBUG_FS
        depends on BLOCK
        default n
        help
        called lkdtm.
  
        Documentation on how to use the module can be found in
-       drivers/misc/lkdtm.c
+       Documentation/fault-injection/provoke-crashes.txt
  
  config FAULT_INJECTION
        bool "Fault-injection framework"