Skip to content

Commit a2573bc

Browse files
bwicaksononvwilldeacon
authored andcommitted
perf/arm_cspmu: Add callback to reset filter config
Implementer may need to reset a filter config when stopping a counter, thus adding a callback for this. Reviewed-by: Ilkka Koskinen <ilkka@os.amperecomputing.com> Reviewed-by: Suzuki K Poulose <suzuki.poulose@arm.com> Signed-off-by: Besar Wicaksono <bwicaksono@nvidia.com> Signed-off-by: Will Deacon <will@kernel.org>
1 parent c3d78c3 commit a2573bc

2 files changed

Lines changed: 7 additions & 1 deletion

File tree

drivers/perf/arm_cspmu/arm_cspmu.c

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -815,6 +815,10 @@ static void arm_cspmu_stop(struct perf_event *event, int pmu_flags)
815815
return;
816816

817817
arm_cspmu_disable_counter(cspmu, hwc->idx);
818+
819+
if (cspmu->impl.ops.reset_ev_filter)
820+
cspmu->impl.ops.reset_ev_filter(cspmu, event);
821+
818822
arm_cspmu_event_update(event);
819823

820824
hwc->state |= PERF_HES_STOPPED | PERF_HES_UPTODATE;

drivers/perf/arm_cspmu/arm_cspmu.h

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -152,11 +152,13 @@ struct arm_cspmu_impl_ops {
152152
bool (*is_cycle_counter_event)(const struct perf_event *event);
153153
/* Decode event type/id from configs */
154154
u32 (*event_type)(const struct perf_event *event);
155-
/* Set event filters */
155+
/* Set/reset event filters */
156156
void (*set_cc_filter)(struct arm_cspmu *cspmu,
157157
const struct perf_event *event);
158158
void (*set_ev_filter)(struct arm_cspmu *cspmu,
159159
const struct perf_event *event);
160+
void (*reset_ev_filter)(struct arm_cspmu *cspmu,
161+
const struct perf_event *event);
160162
/* Implementation specific event validation */
161163
int (*validate_event)(struct arm_cspmu *cspmu,
162164
struct perf_event *event);

0 commit comments

Comments
 (0)