Re: [PATCH] drivers/perf: Fix ali_drw_pmu driver interrupt status clearing

Jing Zhang
2024-08-21T02:22:05Z

在 2024/8/20 下午5:18, Mark Rutland 写道:
> On Mon, Aug 19, 2024 at 07:48:30PM +0800, Jing Zhang wrote:
>> The alibaba_uncore_pmu driver forgot to clear all interrupt status
>> in the interrupt processing function. After the PMU counter overflow
>> interrupt occurred, an interrupt storm occurred, causing the system
>> to hang.
>>
>> Therefore, clear the correct interrupt status in the interrupt handling
>> function to fix it.
>>
>> Signed-off-by: Jing Zhang <renyu.zj@linux.alibaba.com>
>
> Presumably this should have
>
> Fixes: cf7b61073e4526ca ("drivers/perf: add DDR Sub-System Driveway PMU driver for Yitian 710 SoC")
>
> ... right?

You are right, I forgot it.

>
> With that:
>
> Acked-by: Mark Rutland <mark.rutland@arm.com>
>
> Mark.
>
>> ---
>> drivers/perf/alibaba_uncore_drw_pmu.c | 2 +-
>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/drivers/perf/alibaba_uncore_drw_pmu.c b/drivers/perf/alibaba_uncore_drw_pmu.c
>> index 38a2947..c6ff1bc 100644
>> --- a/drivers/perf/alibaba_uncore_drw_pmu.c
>> +++ b/drivers/perf/alibaba_uncore_drw_pmu.c
>> @@ -400,7 +400,7 @@ static irqreturn_t ali_drw_pmu_isr(int irq_num, void *data)
>> }
>>
>> /* clear common counter intr status */
>> - clr_status = FIELD_PREP(ALI_DRW_PMCOM_CNT_OV_INTR_MASK, 1);
>> + clr_status = FIELD_PREP(ALI_DRW_PMCOM_CNT_OV_INTR_MASK, status);
>> writel(clr_status,
>> drw_pmu->cfg_base + ALI_DRW_PMU_OV_INTR_CLR);
>> }
>> --
>> 1.8.3.1
>>