diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2024-04-07 09:14:46 -0700 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2024-04-07 09:14:46 -0700 |
commit | e2948effa9063ae8bd0e7dd65ca4a0fa068c71a6 (patch) | |
tree | 90025f244ccf3b2a7c30bd1c917329001234cc8d | |
parent | f2f80ac809875855ac843f9e5e7480604b5cbff5 (diff) | |
parent | 312be9fc2234c8acfb8148a9f4c358b70d358dee (diff) | |
download | linux-e2948effa9063ae8bd0e7dd65ca4a0fa068c71a6.tar.gz linux-e2948effa9063ae8bd0e7dd65ca4a0fa068c71a6.tar.bz2 linux-e2948effa9063ae8bd0e7dd65ca4a0fa068c71a6.zip |
Merge tag 'perf-urgent-2024-04-07' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull x86 perf fix from Ingo Molnar:
"Fix a combined PEBS events bug on x86 Intel CPUs"
* tag 'perf-urgent-2024-04-07' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
perf/x86/intel/ds: Don't clear ->pebs_data_cfg for the last PEBS event
-rw-r--r-- | arch/x86/events/intel/ds.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/arch/x86/events/intel/ds.c b/arch/x86/events/intel/ds.c index 2641ba620f12..e010bfed8417 100644 --- a/arch/x86/events/intel/ds.c +++ b/arch/x86/events/intel/ds.c @@ -1237,11 +1237,11 @@ pebs_update_state(bool needed_cb, struct cpu_hw_events *cpuc, struct pmu *pmu = event->pmu; /* - * Make sure we get updated with the first PEBS - * event. It will trigger also during removal, but - * that does not hurt: + * Make sure we get updated with the first PEBS event. + * During removal, ->pebs_data_cfg is still valid for + * the last PEBS event. Don't clear it. */ - if (cpuc->n_pebs == 1) + if ((cpuc->n_pebs == 1) && add) cpuc->pebs_data_cfg = PEBS_UPDATE_DS_SW; if (needed_cb != pebs_needs_sched_cb(cpuc)) { |