[PATCH] perf: RISC-V: fix failure for custom firmware events

Atish Patra atishp at atishpatra.org
Tue Sep 20 01:30:43 PDT 2022


On Mon, Sep 19, 2022 at 8:52 AM Mayuresh Chitale
<mchitale at ventanamicro.com> wrote:
>
> We can have SBI implementation specific firmware events in addition
> to standard firmware events so we should not check firmware event code
> against any limit. This patch removes the check so that programming
> of the custom firmware events can be supported by the driver.
>
> Fixes: e9991434596f5 ("RISC-V: Add perf platform driver based on SBI PMU extension")
> Signed-off-by: Mayuresh Chitale <mchitale at ventanamicro.com>
> Reviewed-by: Andrew Jones <ajones at ventanamicro.com>
> ---
>  drivers/perf/riscv_pmu_sbi.c | 7 ++-----
>  1 file changed, 2 insertions(+), 5 deletions(-)
>
> diff --git a/drivers/perf/riscv_pmu_sbi.c b/drivers/perf/riscv_pmu_sbi.c
> index 8de4ca2fef21..df044292615c 100644
> --- a/drivers/perf/riscv_pmu_sbi.c
> +++ b/drivers/perf/riscv_pmu_sbi.c
> @@ -381,11 +381,8 @@ static int pmu_sbi_event_map(struct perf_event *event, u64 *econfig)
>                 bSoftware = config >> 63;
>                 raw_config_val = config & RISCV_PMU_RAW_EVENT_MASK;
>                 if (bSoftware) {
> -                       if (raw_config_val < SBI_PMU_FW_MAX)
> -                               ret = (raw_config_val & 0xFFFF) |
> -                                     (SBI_PMU_EVENT_TYPE_FW << 16);
> -                       else
> -                               return -EINVAL;
> +                       ret = (raw_config_val & 0xFFFF) |
> +                               (SBI_PMU_EVENT_TYPE_FW << 16);
>                 } else {
>                         ret = RISCV_PMU_RAW_EVENT_IDX;
>                         *econfig = raw_config_val;
> --
> 2.25.1
>

I don't think this should be tagged as a fix. The SBI spec currently
does not mention anything about custom firmware events.
As it only defined a certain set of firmware events, the check was
added in the driver.

Just to be clear, I am not against this patch. We should allow
firmware to support custom events beyond what standard firmware events
that SBI specification defines.
The SBI spec will be improved to add provisions for custom firmware events.
The patch looks good to me with the fixes tag removed.

-- 
Regards,
Atish



More information about the linux-riscv mailing list