Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge branch 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip

Pull perf fixes from Thomas Gleixner:
"Three fixlets for perf:

- add a missing NULL pointer check in the intel BTS driver

- make BTS an exclusive PMU because BTS can only handle one event at
a time

- ensure that exclusive events are limited to one PMU so that several
exclusive events can be scheduled on different PMU instances"

* 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
perf/core: Limit matching exclusive events to one PMU
perf/x86/intel/bts: Make it an exclusive PMU
perf/x86/intel/bts: Make sure debug store is valid

+4 -3
+3 -2
arch/x86/events/intel/bts.c
··· 455 455 * The only surefire way of knowing if this NMI is ours is by checking 456 456 * the write ptr against the PMI threshold. 457 457 */ 458 - if (ds->bts_index >= ds->bts_interrupt_threshold) 458 + if (ds && (ds->bts_index >= ds->bts_interrupt_threshold)) 459 459 handled = 1; 460 460 461 461 /* ··· 584 584 if (!boot_cpu_has(X86_FEATURE_DTES64) || !x86_pmu.bts) 585 585 return -ENODEV; 586 586 587 - bts_pmu.capabilities = PERF_PMU_CAP_AUX_NO_SG | PERF_PMU_CAP_ITRACE; 587 + bts_pmu.capabilities = PERF_PMU_CAP_AUX_NO_SG | PERF_PMU_CAP_ITRACE | 588 + PERF_PMU_CAP_EXCLUSIVE; 588 589 bts_pmu.task_ctx_nr = perf_sw_context; 589 590 bts_pmu.event_init = bts_event_init; 590 591 bts_pmu.add = bts_event_add;
+1 -1
kernel/events/core.c
··· 3929 3929 3930 3930 static bool exclusive_event_match(struct perf_event *e1, struct perf_event *e2) 3931 3931 { 3932 - if ((e1->pmu->capabilities & PERF_PMU_CAP_EXCLUSIVE) && 3932 + if ((e1->pmu == e2->pmu) && 3933 3933 (e1->cpu == e2->cpu || 3934 3934 e1->cpu == -1 || 3935 3935 e2->cpu == -1))