Re: [PATCH v2] drm/panfrost:report the full raw fault information instead

From: Chunyou Tang
Date: Fri Jun 18 2021 - 23:20:03 EST


Hi Steve,
1,Now I know how to write the subject
2,the low 8 bits is the exception type in spec.

and you can see prnfrost_exception_name()

switch (exception_code) {
/* Non-Fault Status code */
case 0x00: return "NOT_STARTED/IDLE/OK";
case 0x01: return "DONE";
case 0x02: return "INTERRUPTED";
case 0x03: return "STOPPED";
case 0x04: return "TERMINATED";
case 0x08: return "ACTIVE";
........
........
case 0xD8: return "ACCESS_FLAG";
case 0xD9 ... 0xDF: return "ACCESS_FLAG";
case 0xE0 ... 0xE7: return "ADDRESS_SIZE_FAULT";
case 0xE8 ... 0xEF: return "MEMORY_ATTRIBUTES_FAULT";
}
return "UNKNOWN";
}

the exception_code in case is only 8 bits,so if fault_status
in panfrost_gpu_irq_handler() don't & 0xFF,it can't get correct
exception reason,it will be always UNKNOWN.

ÓÚ Fri, 18 Jun 2021 13:43:24 +0100
Steven Price <steven.price@xxxxxxx> дµÀ:

> On 17/06/2021 07:20, ChunyouTang wrote:
> > From: ChunyouTang <tangchunyou@xxxxxxxxxxxx>
> >
> > of the low 8 bits.
>
> Please don't split the subject like this. The first line of the commit
> should be a (very short) summary of the patch. Then a blank line and
> then a longer description of what the purpose of the patch is and why
> it's needed.
>
> Also you previously had this as part of a series (the first part
> adding the "& 0xFF" in the panfrost_exception_name() call). I'm not
> sure we need two patches for the single line, but as it stands this
> patch doesn't apply.
>
> Also I'm still not receiving any emails from you directly (only via
> the list), so it's possible I might have missed something you sent.
>
> Steve
>
> >
> > Signed-off-by: ChunyouTang <tangchunyou@xxxxxxxxxxxx>
> > ---
> > drivers/gpu/drm/panfrost/panfrost_gpu.c | 2 +-
> > 1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/drivers/gpu/drm/panfrost/panfrost_gpu.c
> > b/drivers/gpu/drm/panfrost/panfrost_gpu.c index
> > 1fffb6a0b24f..d2d287bbf4e7 100644 ---
> > a/drivers/gpu/drm/panfrost/panfrost_gpu.c +++
> > b/drivers/gpu/drm/panfrost/panfrost_gpu.c @@ -33,7 +33,7 @@ static
> > irqreturn_t panfrost_gpu_irq_handler(int irq, void *data) address
> > |= gpu_read(pfdev, GPU_FAULT_ADDRESS_LO);
> > dev_warn(pfdev->dev, "GPU Fault 0x%08x (%s) at
> > 0x%016llx\n",
> > - fault_status & 0xFF,
> > panfrost_exception_name(pfdev, fault_status & 0xFF),
> > + fault_status,
> > panfrost_exception_name(pfdev, fault_status & 0xFF), address);
> >
> > if (state & GPU_IRQ_MULTIPLE_FAULT)
> >