Re: [PATCH v4 2/5] perf/core: Export perf_exclude_event()

From: Thomas Richter
Date: Wed Oct 23 2024 - 03:33:41 EST


On 10/23/24 02:09, Namhyung Kim wrote:
> And increase the dropped_sample count when it returns 1. Now it can
> track how many samples are dropped due to the privilege filters in
> software events.
>
> While at it, rename the same function in s390 cpum_sf PMU and also count
> the dropped samples.
>
> Cc: Heiko Carstens <hca@xxxxxxxxxxxxx>
> Cc: Vasily Gorbik <gor@xxxxxxxxxxxxx>
> Cc: Alexander Gordeev <agordeev@xxxxxxxxxxxxx>
> Cc: Christian Borntraeger <borntraeger@xxxxxxxxxxxxx>
> Cc: Sven Schnelle <svens@xxxxxxxxxxxxx>
> Cc: Thomas Richter <tmricht@xxxxxxxxxxxxx>
> Cc: linux-s390@xxxxxxxxxxxxxxx
> Signed-off-by: Namhyung Kim <namhyung@xxxxxxxxxx>
> ---
> arch/s390/kernel/perf_cpum_sf.c | 8 +++++---
> include/linux/perf_event.h | 6 ++++++
> kernel/events/core.c | 11 +++++++----
> 3 files changed, 18 insertions(+), 7 deletions(-)
>
> diff --git a/arch/s390/kernel/perf_cpum_sf.c b/arch/s390/kernel/perf_cpum_sf.c
> index 5b765e3ccf0cadc8..ff9e694f2be45c6b 100644
> --- a/arch/s390/kernel/perf_cpum_sf.c
> +++ b/arch/s390/kernel/perf_cpum_sf.c
> @@ -996,7 +996,7 @@ static void cpumsf_pmu_disable(struct pmu *pmu)
> cpuhw->flags &= ~PMU_F_ENABLED;
> }
>
> -/* perf_exclude_event() - Filter event
> +/* perf_event_exclude() - Filter event
> * @event: The perf event
> * @regs: pt_regs structure
> * @sde_regs: Sample-data-entry (sde) regs structure
> @@ -1005,7 +1005,7 @@ static void cpumsf_pmu_disable(struct pmu *pmu)
> *
> * Return non-zero if the event shall be excluded.
> */
> -static int perf_exclude_event(struct perf_event *event, struct pt_regs *regs,
> +static int perf_event_exclude(struct perf_event *event, struct pt_regs *regs,
> struct perf_sf_sde_regs *sde_regs)
> {
> if (event->attr.exclude_user && user_mode(regs))
> @@ -1088,8 +1088,10 @@ static int perf_push_sample(struct perf_event *event,
> data.tid_entry.pid = basic->hpp & LPP_PID_MASK;
>
> overflow = 0;
> - if (perf_exclude_event(event, &regs, sde_regs))
> + if (perf_event_exclude(event, &regs, sde_regs)) {
> + atomic64_inc(&event->dropped_samples);
> goto out;
> + }
> if (perf_event_overflow(event, &data, &regs)) {
> overflow = 1;
> event->pmu->stop(event, 0);

For the s390 part:

Acked-by: Thomas Richter <tmricht@xxxxxxxxxxxxx>

--
Thomas Richter, Dept 3303, IBM s390 Linux Development, Boeblingen, Germany
--
IBM Deutschland Research & Development GmbH

Vorsitzender des Aufsichtsrats: Wolfgang Wendt

Geschäftsführung: David Faller

Sitz der Gesellschaft: Böblingen / Registergericht: Amtsgericht Stuttgart, HRB 243294