2023-12-05 09:27:07

by Vadim Shakirov

[permalink] [raw]
Subject: [PATCH 2/2] drivers: perf: added capabilities for legacy PMU

Added the PERF_PMU_CAP_NO_INTERRUPT flag because the legacy pmu driver
does not provide sampling capabilities

Added the PERF_PMU_CAP_NO_EXCLUDE flag because the legacy pmu driver
does not provide the ability to disable counter incrementation in
different privilege modes

Suggested-by: Atish Patra <[email protected]>
Signed-off-by: Vadim Shakirov <[email protected]>
---
drivers/perf/riscv_pmu_legacy.c | 2 ++
1 file changed, 2 insertions(+)

diff --git a/drivers/perf/riscv_pmu_legacy.c b/drivers/perf/riscv_pmu_legacy.c
index a179ed6ac980..fa0bccf4edf2 100644
--- a/drivers/perf/riscv_pmu_legacy.c
+++ b/drivers/perf/riscv_pmu_legacy.c
@@ -123,6 +123,8 @@ static void pmu_legacy_init(struct riscv_pmu *pmu)
pmu->event_mapped = pmu_legacy_event_mapped;
pmu->event_unmapped = pmu_legacy_event_unmapped;
pmu->csr_index = pmu_legacy_csr_index;
+ pmu->pmu.capabilities |= PERF_PMU_CAP_NO_INTERRUPT;
+ pmu->pmu.capabilities |= PERF_PMU_CAP_NO_EXCLUDE;

perf_pmu_register(&pmu->pmu, "cpu", PERF_TYPE_RAW);
}
--
2.34.1


2023-12-08 21:06:42

by Atish Patra

[permalink] [raw]
Subject: Re: [PATCH 2/2] drivers: perf: added capabilities for legacy PMU

On Tue, Dec 5, 2023 at 1:26 AM Vadim Shakirov
<[email protected]> wrote:
>
> Added the PERF_PMU_CAP_NO_INTERRUPT flag because the legacy pmu driver
> does not provide sampling capabilities
>
> Added the PERF_PMU_CAP_NO_EXCLUDE flag because the legacy pmu driver
> does not provide the ability to disable counter incrementation in
> different privilege modes
>
> Suggested-by: Atish Patra <[email protected]>
> Signed-off-by: Vadim Shakirov <[email protected]>
> ---
> drivers/perf/riscv_pmu_legacy.c | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/drivers/perf/riscv_pmu_legacy.c b/drivers/perf/riscv_pmu_legacy.c
> index a179ed6ac980..fa0bccf4edf2 100644
> --- a/drivers/perf/riscv_pmu_legacy.c
> +++ b/drivers/perf/riscv_pmu_legacy.c
> @@ -123,6 +123,8 @@ static void pmu_legacy_init(struct riscv_pmu *pmu)
> pmu->event_mapped = pmu_legacy_event_mapped;
> pmu->event_unmapped = pmu_legacy_event_unmapped;
> pmu->csr_index = pmu_legacy_csr_index;
> + pmu->pmu.capabilities |= PERF_PMU_CAP_NO_INTERRUPT;
> + pmu->pmu.capabilities |= PERF_PMU_CAP_NO_EXCLUDE;
>
> perf_pmu_register(&pmu->pmu, "cpu", PERF_TYPE_RAW);
> }
> --
> 2.34.1
>

Reviewed-by: Atish Patra <[email protected]>

--
Regards,
Atish