Merge branch 'perf-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git...
Linus Torvalds [Wed, 23 May 2012 01:18:55 +0000 (18:18 -0700)]
Pull perf changes from Ingo Molnar:
 "Lots of changes:

   - (much) improved assembly annotation support in perf report, with
     jump visualization, searching, navigation, visual output
     improvements and more.

    - kernel support for AMD IBS PMU hardware features.  Notably 'perf
      record -e cycles:p' and 'perf top -e cycles:p' should work without
      skid now, like PEBS does on the Intel side, because it takes
      advantage of IBS transparently.

    - the libtracevents library: it is the first step towards unifying
      tracing tooling and perf, and it also gives a tracing library for
      external tools like powertop to rely on.

    - infrastructure: various improvements and refactoring of the UI
      modules and related code

    - infrastructure: cleanup and simplification of the profiling
      targets code (--uid, --pid, --tid, --cpu, --all-cpus, etc.)

    - tons of robustness fixes all around

    - various ftrace updates: speedups, cleanups, robustness
      improvements.

    - typing 'make' in tools/ will now give you a menu of projects to
      build and a short help text to explain what each does.

    - ... and lots of other changes I forgot to list.

  The perf record make bzImage + perf report regression you reported
  should be fixed."

* 'perf-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (166 commits)
  tracing: Remove kernel_lock annotations
  tracing: Fix initial buffer_size_kb state
  ring-buffer: Merge separate resize loops
  perf evsel: Create events initially disabled -- again
  perf tools: Split term type into value type and term type
  perf hists: Fix callchain ip printf format
  perf target: Add uses_mmap field
  ftrace: Remove selecting FRAME_POINTER with FUNCTION_TRACER
  ftrace/x86: Have x86 ftrace use the ftrace_modify_all_code()
  ftrace: Make ftrace_modify_all_code() global for archs to use
  ftrace: Return record ip addr for ftrace_location()
  ftrace: Consolidate ftrace_location() and ftrace_text_reserved()
  ftrace: Speed up search by skipping pages by address
  ftrace: Remove extra helper functions
  ftrace: Sort all function addresses, not just per page
  tracing: change CPU ring buffer state from tracing_cpumask
  tracing: Check return value of tracing_dentry_percpu()
  ring-buffer: Reset head page before running self test
  ring-buffer: Add integrity check at end of iter read
  ring-buffer: Make addition of pages in ring buffer atomic
  ...

1  2 
Makefile
arch/x86/Kconfig
arch/x86/kernel/nmi.c
init/Kconfig
kernel/sched/core.c

diff --cc Makefile
Simple merge
Simple merge
@@@ -163,16 -157,61 +163,16 @@@ void unregister_nmi_handler(unsigned in
  
        spin_unlock_irqrestore(&desc->lock, flags);
        synchronize_rcu();
 -      return (n);
  }
 -
 -int register_nmi_handler(unsigned int type, nmi_handler_t handler,
 -                      unsigned long nmiflags, const char *devname)
 -{
 -      struct nmiaction *action;
 -      int retval = -ENOMEM;
 -
 -      if (!handler)
 -              return -EINVAL;
 -
 -      action = kzalloc(sizeof(struct nmiaction), GFP_KERNEL);
 -      if (!action)
 -              goto fail_action;
 -
 -      action->handler = handler;
 -      action->flags = nmiflags;
 -      action->name = kstrndup(devname, NMI_MAX_NAMELEN, GFP_KERNEL);
 -      if (!action->name)
 -              goto fail_action_name;
 -
 -      retval = __setup_nmi(type, action);
 -
 -      if (retval)
 -              goto fail_setup_nmi;
 -
 -      return retval;
 -
 -fail_setup_nmi:
 -      kfree(action->name);
 -fail_action_name:
 -      kfree(action);
 -fail_action:  
 -
 -      return retval;
 -}
 -EXPORT_SYMBOL_GPL(register_nmi_handler);
 -
 -void unregister_nmi_handler(unsigned int type, const char *name)
 -{
 -      struct nmiaction *a;
 -
 -      a = __free_nmi(type, name);
 -      if (a) {
 -              kfree(a->name);
 -              kfree(a);
 -      }
 -}
 -
  EXPORT_SYMBOL_GPL(unregister_nmi_handler);
  
- static notrace __kprobes void
+ static __kprobes void
  pci_serr_error(unsigned char reason, struct pt_regs *regs)
  {
 +      /* check to see if anyone registered against these types of errors */
 +      if (nmi_handle(NMI_SERR, regs, false))
 +              return;
 +
        pr_emerg("NMI: PCI system error (SERR) for reason %02x on CPU %d.\n",
                 reason, smp_processor_id());
  
diff --cc init/Kconfig
Simple merge
Simple merge