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 tag 'perf-urgent-2020-12-06' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip

Pull perf fixes from Thomas Gleixner:
"Two fixes for performance monitoring on X86:

- Add recursion protection to another callchain invoked from
x86_pmu_stop() which can recurse back into x86_pmu_stop(). The
first attempt to fix this missed this extra code path.

- Use the already filtered status variable to check for PEBS counter
overflow bits and not the unfiltered full status read from
IA32_PERF_GLOBAL_STATUS which can have unrelated bits check which
would be evaluated incorrectly"

* tag 'perf-urgent-2020-12-06' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
perf/x86/intel: Check PEBS status correctly
perf/x86/intel: Fix a warning on x86_pmu_stop() with large PEBS

+2 -2
+2 -2
arch/x86/events/intel/ds.c
··· 1916 1916 * that caused the PEBS record. It's called collision. 1917 1917 * If collision happened, the record will be dropped. 1918 1918 */ 1919 - if (p->status != (1ULL << bit)) { 1919 + if (pebs_status != (1ULL << bit)) { 1920 1920 for_each_set_bit(i, (unsigned long *)&pebs_status, size) 1921 1921 error[i]++; 1922 1922 continue; ··· 1940 1940 if (error[bit]) { 1941 1941 perf_log_lost_samples(event, error[bit]); 1942 1942 1943 - if (perf_event_account_interrupt(event)) 1943 + if (iregs && perf_event_account_interrupt(event)) 1944 1944 x86_pmu_stop(event, 0); 1945 1945 } 1946 1946