OSDN Git Service

arm_pmu: Tidy up clear_event_idx call backs
authorSuzuki K Poulose <suzuki.poulose@arm.com>
Tue, 10 Jul 2018 08:58:01 +0000 (09:58 +0100)
committerWill Deacon <will.deacon@arm.com>
Tue, 10 Jul 2018 17:19:02 +0000 (18:19 +0100)
commit7dfc8db1d117ae08c649266d5459ac8b10800d6e
treec505fcfe33f8c4ab61cb2ee4baf385a465f51458
parente2da97d328d4951d25f6634eda7213f7257417b6
arm_pmu: Tidy up clear_event_idx call backs

The armpmu uses get_event_idx callback to allocate an event
counter for a given event, which marks the selected counter
as "used". Now, when we delete the counter, the arm_pmu goes
ahead and clears the "used" bit and then invokes the "clear_event_idx"
call back, which kind of splits the job between the core code
and the backend. To keep things tidy, mandate the implementation
of clear_event_idx() and add it for exisiting backends.
This will be useful for adding the chained event support, where
we leave the event idx maintenance to the backend.

Also, when an event is removed from the PMU, reset the hw.idx
to indicate that a counter is not allocated for this event,
to help the backends do better checks. This will be also used
for the chain counter support.

Cc: Will Deacon <will.deacon@arm.com>
Cc: Mark Rutland <mark.rutland@arm.com>
Reviewed-by: Julien Thierry <julien.thierry@arm.com>
Signed-off-by: Suzuki K Poulose <suzuki.poulose@arm.com>
Signed-off-by: Will Deacon <will.deacon@arm.com>
arch/arm/kernel/perf_event_v6.c
arch/arm/kernel/perf_event_v7.c
arch/arm/kernel/perf_event_xscale.c
arch/arm64/kernel/perf_event.c
drivers/perf/arm_pmu.c