Messages in this thread Patch in this message | | | From | Andi Kleen <> | Subject | [PATCH 1/2] x86, perf: Remove warning for zero PEBS status | Date | Thu, 3 Dec 2015 13:22:19 -0800 |
| |
From: Andi Kleen <ak@linux.intel.com>
The recent change 75f80859b1 (... Robustify PEBS buffer drain) causes lots of warnings on different CPUs before Skylake when running PEBS intensive workloads.
They can have a zero status field in the PEBS record when PEBS is racing with clearing of GLOBAl_STATUS.
This also can cause hangs (it seems there are still problems with printk in NMI)
Disable the warning, but still ignore the record.
Signed-off-by: Andi Kleen <ak@linux.intel.com> --- arch/x86/kernel/cpu/perf_event_intel_ds.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-)
diff --git a/arch/x86/kernel/cpu/perf_event_intel_ds.c b/arch/x86/kernel/cpu/perf_event_intel_ds.c index 7f11784..da294de 100644 --- a/arch/x86/kernel/cpu/perf_event_intel_ds.c +++ b/arch/x86/kernel/cpu/perf_event_intel_ds.c @@ -1237,10 +1237,7 @@ static void intel_pmu_drain_pebs_nhm(struct pt_regs *iregs) bit = find_first_bit((unsigned long *)&pebs_status, x86_pmu.max_pebs_events); - if (WARN(bit >= x86_pmu.max_pebs_events, - "PEBS record without PEBS event! status=%Lx pebs_enabled=%Lx active_mask=%Lx", - (unsigned long long)p->status, (unsigned long long)cpuc->pebs_enabled, - *(unsigned long long *)cpuc->active_mask)) + if (bit >= x86_pmu.max_pebs_events) continue; /* -- 2.4.3
| |