Merge branch 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel...
authorLinus Torvalds <torvalds@linux-foundation.org>
Thu, 17 Sep 2015 17:37:46 +0000 (10:37 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Thu, 17 Sep 2015 17:37:46 +0000 (10:37 -0700)
Pull perf fixes from Ingo MOlnar:
 "Mostly tooling fixes, but also two x86 PMU driver fixes"

* 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
  perf tests: Fix software clock events test setting maps
  perf tests: Fix task exit test setting maps
  perf evlist: Fix create_syswide_maps() not propagating maps
  perf evlist: Fix add() not propagating maps
  perf evlist: Factor out a function to propagate maps for a single evsel
  perf evlist: Make create_maps() use set_maps()
  perf evlist: Make set_maps() more resilient
  perf evsel: Add own_cpus member
  perf evlist: Fix missing thread_map__put in propagate_maps()
  perf evlist: Fix splice_list_tail() not setting evlist
  perf evlist: Add has_user_cpus member
  perf evlist: Remove redundant validation from propagate_maps()
  perf evlist: Simplify set_maps() logic
  perf evlist: Simplify propagate_maps() logic
  perf top: Fix segfault pressing -> with no hist entries
  perf header: Fixup reading of HEADER_NRCPUS feature
  perf/x86/intel: Fix constraint access
  perf/x86/intel/bts: Set event->hw.itrace_started in pmu::start to match the new logic
  perf tools: Fix use of wrong event when processing exit events
  perf tools: Fix parse_events_add_pmu caller

1  2 
arch/x86/kernel/cpu/perf_event_intel.c

index cd9b6d0b10bf408d04956e45c1a2d77bd3f99b07,f41e4dc781190a7fdc00494904be803aabfdb6b6..3fefebfbdf4bb4f68e5a5bf1647550ad0cd71a75
@@@ -12,7 -12,7 +12,7 @@@
  #include <linux/init.h>
  #include <linux/slab.h>
  #include <linux/export.h>
 -#include <linux/watchdog.h>
 +#include <linux/nmi.h>
  
  #include <asm/cpufeature.h>
  #include <asm/hardirq.h>
@@@ -2316,9 -2316,12 +2316,12 @@@ static struct event_constraint 
  intel_get_event_constraints(struct cpu_hw_events *cpuc, int idx,
                            struct perf_event *event)
  {
-       struct event_constraint *c1 = cpuc->event_constraint[idx];
+       struct event_constraint *c1 = NULL;
        struct event_constraint *c2;
  
+       if (idx >= 0) /* fake does < 0 */
+               c1 = cpuc->event_constraint[idx];
        /*
         * first time only
         * - static constraint: no change across incremental scheduling calls
@@@ -3627,10 -3630,7 +3630,10 @@@ static __init int fixup_ht_bug(void
                return 0;
        }
  
 -      watchdog_nmi_disable_all();
 +      if (lockup_detector_suspend() != 0) {
 +              pr_debug("failed to disable PMU erratum BJ122, BV98, HSD29 workaround\n");
 +              return 0;
 +      }
  
        x86_pmu.flags &= ~(PMU_FL_EXCL_CNTRS | PMU_FL_EXCL_ENABLED);
  
        x86_pmu.commit_scheduling = NULL;
        x86_pmu.stop_scheduling = NULL;
  
 -      watchdog_nmi_enable_all();
 +      lockup_detector_resume();
  
        get_online_cpus();