diff options
author | Ingo Molnar <mingo@kernel.org> | 2024-04-14 23:25:18 +0300 |
---|---|---|
committer | Ingo Molnar <mingo@kernel.org> | 2024-04-14 23:25:18 +0300 |
commit | d0331aa9789707140e938d14629c200b32ae1d0f (patch) | |
tree | 744a6b6d34f242e122bf78ca9f3a95c1548907a3 /arch/x86/events | |
parent | 93d3fde7fd19c2e2cde7220e7986f9a75e9c5680 (diff) | |
parent | 72374d71c31596c7442ac0db9a9327d0e062e941 (diff) | |
download | linux-d0331aa9789707140e938d14629c200b32ae1d0f.tar.xz |
Merge branch 'linus' into perf/core, to pick up perf/urgent fixes
Pick up perf/urgent fixes that are upstream already, but not
yet in the perf/core development branch.
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'arch/x86/events')
-rw-r--r-- | arch/x86/events/core.c | 1 | ||||
-rw-r--r-- | arch/x86/events/intel/ds.c | 8 |
2 files changed, 5 insertions, 4 deletions
diff --git a/arch/x86/events/core.c b/arch/x86/events/core.c index 09050641ce5d..5b0dd07b1ef1 100644 --- a/arch/x86/events/core.c +++ b/arch/x86/events/core.c @@ -1644,6 +1644,7 @@ static void x86_pmu_del(struct perf_event *event, int flags) while (++i < cpuc->n_events) { cpuc->event_list[i-1] = cpuc->event_list[i]; cpuc->event_constraint[i-1] = cpuc->event_constraint[i]; + cpuc->assign[i-1] = cpuc->assign[i]; } cpuc->event_constraint[i-1] = NULL; --cpuc->n_events; 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)) { |