[PATCH] drivers/perf: riscv: Align errno for unsupported perf type in pmu_sbi_event_map

Atish Patra atishp at rivosinc.com
Fri Aug 30 10:24:13 PDT 2024


On 8/29/24 2:49 AM, Pu Lehui wrote:
> From: Pu Lehui <pulehui at huawei.com>
> 
> RISC-V perf driver does not yet support PERF_TYPE_BREAKPOINT. It would
> be more appropriate to return -EOPNOTSUPP or -ENOENT for this type in
> pmu_sbi_event_map. Considering that other implementations return -ENOENT
> for unsupported perf types, let's synchronize this behavior. Due to this
> reason, a riscv bpf testcases perf_skip fail.
> 
> Signed-off-by: Pu Lehui <pulehui at huawei.com>
> ---
>   drivers/perf/riscv_pmu_sbi.c | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/perf/riscv_pmu_sbi.c b/drivers/perf/riscv_pmu_sbi.c
> index 31a17a56eb3b..cdcb328f09b6 100644
> --- a/drivers/perf/riscv_pmu_sbi.c
> +++ b/drivers/perf/riscv_pmu_sbi.c
> @@ -543,7 +543,7 @@ static int pmu_sbi_event_map(struct perf_event *event, u64 *econfig)
>   		}
>   		break;
>   	default:
> -		ret = -EINVAL;
> +		ret = -ENOENT;
>   		break;
>   	}
>   

Thanks for the fix. There are few more places where the error codes can 
be aligned.

1. We return EOPNOTSUPP for legacy driver.
https://elixir.bootlin.com/linux/v6.11-rc5/source/drivers/perf/riscv_pmu_legacy.c#L31

2. We should return ENOENT for invalid event mapping as well.

https://elixir.bootlin.com/linux/v6.11-rc5/source/drivers/perf/riscv_pmu_sbi.c#L312



More information about the linux-riscv mailing list