On Tue, Feb 18, 2025 at 02:40:06PM -0600, Rob Herring (Arm) wrote: > > From: Anshuman Khandual <anshuman.khandual@xxxxxxx> [...] > BRBE records are invalidated whenever events are reconfigured, a new > task is scheduled in, or after recording is paused (and the records > have been recorded for the event). The architecture allows branch > records to be invalidated by the PE under implementation defined > conditions. It is expected that these conditions are rare. [...] > +static void armv8pmu_sched_task(struct perf_event_pmu_context *pmu_ctx, bool sched_in) > +{ > + struct arm_pmu *armpmu = *this_cpu_ptr(&cpu_armpmu); > + struct pmu_hw_events *hw_events = this_cpu_ptr(armpmu->hw_events); > + > + if (!hw_events->branch_users) > + return; > + > + if (sched_in) > + brbe_invalidate(); > +} Just a minor concern. I don't see any handling for task migration. E.g., for a task is migrated from one CPU to another CPU, I expect we need to save and restore branch records based on BRBE injection. So far, the driver simply invalidates all records. I think this topic is very likely discussed before. If this is the case, please ignore my comment. Except this, the code looks good to me. Thanks, Leo