* [PATCH 1/2] drm/amdgpu/gmc9: print client id string for gfxhub @ 2020-09-01 21:51 Alex Deucher 2020-09-01 21:51 ` [PATCH 2/2] drm/amdgpu/gmc10: " Alex Deucher 0 siblings, 1 reply; 5+ messages in thread From: Alex Deucher @ 2020-09-01 21:51 UTC (permalink / raw) To: amd-gfx; +Cc: Alex Deucher Print the name of the client rather than the number. This makes it easier to debug what block is causing the fault. Signed-off-by: Alex Deucher <alexander.deucher@amd.com> --- drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c | 30 +++++++++++++++++++++++---- 1 file changed, 26 insertions(+), 4 deletions(-) diff --git a/drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c b/drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c index 1ca79030e95e..7e86aee60c64 100644 --- a/drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c +++ b/drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c @@ -71,6 +71,22 @@ #define mmDCHUBBUB_SDPIF_MMIO_CNTRL_0_BASE_IDX 2 +static const char *gfxhub_client_ids[] = { + "CB", + "DB", + "IA", + "WD", + "CPF", + "CPC", + "CPG", + "RLC", + "TCP", + "SQC (inst)", + "SQC (data)", + "SQG", + "PA", +}; + static const u32 golden_settings_vega10_hdp[] = { 0xf64, 0x0fffffff, 0x00000000, @@ -303,7 +319,7 @@ static int gmc_v9_0_process_interrupt(struct amdgpu_device *adev, { struct amdgpu_vmhub *hub; bool retry_fault = !!(entry->src_data[1] & 0x80); - uint32_t status = 0; + uint32_t status = 0, cid = 0; u64 addr; char hub_name[10]; @@ -340,6 +356,8 @@ static int gmc_v9_0_process_interrupt(struct amdgpu_device *adev, RREG32(hub->vm_l2_pro_fault_status); status = RREG32(hub->vm_l2_pro_fault_status); + cid = REG_GET_FIELD(status, + VM_L2_PROTECTION_FAULT_STATUS, CID); WREG32_P(hub->vm_l2_pro_fault_cntl, 1, ~1); } @@ -362,9 +380,13 @@ static int gmc_v9_0_process_interrupt(struct amdgpu_device *adev, dev_err(adev->dev, "VM_L2_PROTECTION_FAULT_STATUS:0x%08X\n", status); - dev_err(adev->dev, "\t Faulty UTCL2 client ID: 0x%lx\n", - REG_GET_FIELD(status, - VM_L2_PROTECTION_FAULT_STATUS, CID)); + if (hub == &adev->vmhub[AMDGPU_GFXHUB_0]) + dev_err(adev->dev, "\t Faulty UTCL2 client ID: %s (0x%x)\n", + cid >= ARRAY_SIZE(gfxhub_client_ids) ? "unknown" : gfxhub_client_ids[cid], + cid); + else + dev_err(adev->dev, "\t Faulty UTCL2 client ID: 0x%x\n", + cid); dev_err(adev->dev, "\t MORE_FAULTS: 0x%lx\n", REG_GET_FIELD(status, VM_L2_PROTECTION_FAULT_STATUS, MORE_FAULTS)); -- 2.25.4 _______________________________________________ amd-gfx mailing list amd-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/amd-gfx ^ permalink raw reply related [flat|nested] 5+ messages in thread
* [PATCH 2/2] drm/amdgpu/gmc10: print client id string for gfxhub 2020-09-01 21:51 [PATCH 1/2] drm/amdgpu/gmc9: print client id string for gfxhub Alex Deucher @ 2020-09-01 21:51 ` Alex Deucher 2020-09-02 2:32 ` Felix Kuehling 0 siblings, 1 reply; 5+ messages in thread From: Alex Deucher @ 2020-09-01 21:51 UTC (permalink / raw) To: amd-gfx; +Cc: Alex Deucher Print the name of the client rather than the number. This makes it easier to debug what block is causing the fault. Signed-off-by: Alex Deucher <alexander.deucher@amd.com> --- drivers/gpu/drm/amd/amdgpu/gfxhub_v2_0.c | 30 +++++++++++++++++++++--- drivers/gpu/drm/amd/amdgpu/gfxhub_v2_1.c | 30 +++++++++++++++++++++--- 2 files changed, 54 insertions(+), 6 deletions(-) diff --git a/drivers/gpu/drm/amd/amdgpu/gfxhub_v2_0.c b/drivers/gpu/drm/amd/amdgpu/gfxhub_v2_0.c index 76acd7f7723e..b882ac59879a 100644 --- a/drivers/gpu/drm/amd/amdgpu/gfxhub_v2_0.c +++ b/drivers/gpu/drm/amd/amdgpu/gfxhub_v2_0.c @@ -31,6 +31,27 @@ #include "soc15_common.h" +static const char *gfxhub_client_ids[] = { + "CB/DB", + "Reserved", + "GE1", + "GE2", + "CPF", + "CPC", + "CPG", + "RLC", + "TCP", + "SQC (inst)", + "SQC (data)", + "SQG", + "Reserved", + "SDMA0", + "SDMA1", + "GCR", + "SDMA2", + "SDMA3", +}; + static uint32_t gfxhub_v2_0_get_invalidate_req(unsigned int vmid, uint32_t flush_type) { @@ -55,12 +76,15 @@ static void gfxhub_v2_0_print_l2_protection_fault_status(struct amdgpu_device *adev, uint32_t status) { + u32 cid = REG_GET_FIELD(status, + GCVM_L2_PROTECTION_FAULT_STATUS, CID); + dev_err(adev->dev, "GCVM_L2_PROTECTION_FAULT_STATUS:0x%08X\n", status); - dev_err(adev->dev, "\t Faulty UTCL2 client ID: 0x%lx\n", - REG_GET_FIELD(status, - GCVM_L2_PROTECTION_FAULT_STATUS, CID)); + dev_err(adev->dev, "\t Faulty UTCL2 client ID: %s (0x%x)\n", + cid >= ARRAY_SIZE(gfxhub_client_ids) ? "unknown" : gfxhub_client_ids[cid], + cid); dev_err(adev->dev, "\t MORE_FAULTS: 0x%lx\n", REG_GET_FIELD(status, GCVM_L2_PROTECTION_FAULT_STATUS, MORE_FAULTS)); diff --git a/drivers/gpu/drm/amd/amdgpu/gfxhub_v2_1.c b/drivers/gpu/drm/amd/amdgpu/gfxhub_v2_1.c index 80c906a0383f..237a9ff5afa0 100644 --- a/drivers/gpu/drm/amd/amdgpu/gfxhub_v2_1.c +++ b/drivers/gpu/drm/amd/amdgpu/gfxhub_v2_1.c @@ -31,6 +31,27 @@ #include "soc15_common.h" +static const char *gfxhub_client_ids[] = { + "CB/DB", + "Reserved", + "GE1", + "GE2", + "CPF", + "CPC", + "CPG", + "RLC", + "TCP", + "SQC (inst)", + "SQC (data)", + "SQG", + "Reserved", + "SDMA0", + "SDMA1", + "GCR", + "SDMA2", + "SDMA3", +}; + static uint32_t gfxhub_v2_1_get_invalidate_req(unsigned int vmid, uint32_t flush_type) { @@ -55,12 +76,15 @@ static void gfxhub_v2_1_print_l2_protection_fault_status(struct amdgpu_device *adev, uint32_t status) { + u32 cid = REG_GET_FIELD(status, + GCVM_L2_PROTECTION_FAULT_STATUS, CID); + dev_err(adev->dev, "GCVM_L2_PROTECTION_FAULT_STATUS:0x%08X\n", status); - dev_err(adev->dev, "\t Faulty UTCL2 client ID: 0x%lx\n", - REG_GET_FIELD(status, - GCVM_L2_PROTECTION_FAULT_STATUS, CID)); + dev_err(adev->dev, "\t Faulty UTCL2 client ID: %s (0x%x)\n", + cid >= ARRAY_SIZE(gfxhub_client_ids) ? "unknown" : gfxhub_client_ids[cid], + cid); dev_err(adev->dev, "\t MORE_FAULTS: 0x%lx\n", REG_GET_FIELD(status, GCVM_L2_PROTECTION_FAULT_STATUS, MORE_FAULTS)); -- 2.25.4 _______________________________________________ amd-gfx mailing list amd-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/amd-gfx ^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH 2/2] drm/amdgpu/gmc10: print client id string for gfxhub 2020-09-01 21:51 ` [PATCH 2/2] drm/amdgpu/gmc10: " Alex Deucher @ 2020-09-02 2:32 ` Felix Kuehling 2020-09-02 7:17 ` Christian König 0 siblings, 1 reply; 5+ messages in thread From: Felix Kuehling @ 2020-09-02 2:32 UTC (permalink / raw) To: Alex Deucher, amd-gfx; +Cc: Alex Deucher Should there a corresponding change in mmhub_v2_0.c? Other than that, the series is Reviewed-by: Felix Kuehling <Felix.Kuehling@amd.com> On 2020-09-01 5:51 p.m., Alex Deucher wrote: > Print the name of the client rather than the number. This > makes it easier to debug what block is causing the fault. > > Signed-off-by: Alex Deucher <alexander.deucher@amd.com> > --- > drivers/gpu/drm/amd/amdgpu/gfxhub_v2_0.c | 30 +++++++++++++++++++++--- > drivers/gpu/drm/amd/amdgpu/gfxhub_v2_1.c | 30 +++++++++++++++++++++--- > 2 files changed, 54 insertions(+), 6 deletions(-) > > diff --git a/drivers/gpu/drm/amd/amdgpu/gfxhub_v2_0.c b/drivers/gpu/drm/amd/amdgpu/gfxhub_v2_0.c > index 76acd7f7723e..b882ac59879a 100644 > --- a/drivers/gpu/drm/amd/amdgpu/gfxhub_v2_0.c > +++ b/drivers/gpu/drm/amd/amdgpu/gfxhub_v2_0.c > @@ -31,6 +31,27 @@ > > #include "soc15_common.h" > > +static const char *gfxhub_client_ids[] = { > + "CB/DB", > + "Reserved", > + "GE1", > + "GE2", > + "CPF", > + "CPC", > + "CPG", > + "RLC", > + "TCP", > + "SQC (inst)", > + "SQC (data)", > + "SQG", > + "Reserved", > + "SDMA0", > + "SDMA1", > + "GCR", > + "SDMA2", > + "SDMA3", > +}; > + > static uint32_t gfxhub_v2_0_get_invalidate_req(unsigned int vmid, > uint32_t flush_type) > { > @@ -55,12 +76,15 @@ static void > gfxhub_v2_0_print_l2_protection_fault_status(struct amdgpu_device *adev, > uint32_t status) > { > + u32 cid = REG_GET_FIELD(status, > + GCVM_L2_PROTECTION_FAULT_STATUS, CID); > + > dev_err(adev->dev, > "GCVM_L2_PROTECTION_FAULT_STATUS:0x%08X\n", > status); > - dev_err(adev->dev, "\t Faulty UTCL2 client ID: 0x%lx\n", > - REG_GET_FIELD(status, > - GCVM_L2_PROTECTION_FAULT_STATUS, CID)); > + dev_err(adev->dev, "\t Faulty UTCL2 client ID: %s (0x%x)\n", > + cid >= ARRAY_SIZE(gfxhub_client_ids) ? "unknown" : gfxhub_client_ids[cid], > + cid); > dev_err(adev->dev, "\t MORE_FAULTS: 0x%lx\n", > REG_GET_FIELD(status, > GCVM_L2_PROTECTION_FAULT_STATUS, MORE_FAULTS)); > diff --git a/drivers/gpu/drm/amd/amdgpu/gfxhub_v2_1.c b/drivers/gpu/drm/amd/amdgpu/gfxhub_v2_1.c > index 80c906a0383f..237a9ff5afa0 100644 > --- a/drivers/gpu/drm/amd/amdgpu/gfxhub_v2_1.c > +++ b/drivers/gpu/drm/amd/amdgpu/gfxhub_v2_1.c > @@ -31,6 +31,27 @@ > > #include "soc15_common.h" > > +static const char *gfxhub_client_ids[] = { > + "CB/DB", > + "Reserved", > + "GE1", > + "GE2", > + "CPF", > + "CPC", > + "CPG", > + "RLC", > + "TCP", > + "SQC (inst)", > + "SQC (data)", > + "SQG", > + "Reserved", > + "SDMA0", > + "SDMA1", > + "GCR", > + "SDMA2", > + "SDMA3", > +}; > + > static uint32_t gfxhub_v2_1_get_invalidate_req(unsigned int vmid, > uint32_t flush_type) > { > @@ -55,12 +76,15 @@ static void > gfxhub_v2_1_print_l2_protection_fault_status(struct amdgpu_device *adev, > uint32_t status) > { > + u32 cid = REG_GET_FIELD(status, > + GCVM_L2_PROTECTION_FAULT_STATUS, CID); > + > dev_err(adev->dev, > "GCVM_L2_PROTECTION_FAULT_STATUS:0x%08X\n", > status); > - dev_err(adev->dev, "\t Faulty UTCL2 client ID: 0x%lx\n", > - REG_GET_FIELD(status, > - GCVM_L2_PROTECTION_FAULT_STATUS, CID)); > + dev_err(adev->dev, "\t Faulty UTCL2 client ID: %s (0x%x)\n", > + cid >= ARRAY_SIZE(gfxhub_client_ids) ? "unknown" : gfxhub_client_ids[cid], > + cid); > dev_err(adev->dev, "\t MORE_FAULTS: 0x%lx\n", > REG_GET_FIELD(status, > GCVM_L2_PROTECTION_FAULT_STATUS, MORE_FAULTS)); _______________________________________________ amd-gfx mailing list amd-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/amd-gfx ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH 2/2] drm/amdgpu/gmc10: print client id string for gfxhub 2020-09-02 2:32 ` Felix Kuehling @ 2020-09-02 7:17 ` Christian König 2020-09-02 14:30 ` Deucher, Alexander 0 siblings, 1 reply; 5+ messages in thread From: Christian König @ 2020-09-02 7:17 UTC (permalink / raw) To: Felix Kuehling, Alex Deucher, amd-gfx; +Cc: Alex Deucher Am 02.09.20 um 04:32 schrieb Felix Kuehling: > Should there a corresponding change in mmhub_v2_0.c? It would be at least nice to have. Maybe we should put a pointer to the array and its size into the hub structure instead? Anyway Reviewed-by: Christian König <christian.koenig@amd.com> for now. Christian. > > Other than that, the series is > > Reviewed-by: Felix Kuehling <Felix.Kuehling@amd.com> > > On 2020-09-01 5:51 p.m., Alex Deucher wrote: >> Print the name of the client rather than the number. This >> makes it easier to debug what block is causing the fault. >> >> Signed-off-by: Alex Deucher <alexander.deucher@amd.com> >> --- >> drivers/gpu/drm/amd/amdgpu/gfxhub_v2_0.c | 30 +++++++++++++++++++++--- >> drivers/gpu/drm/amd/amdgpu/gfxhub_v2_1.c | 30 +++++++++++++++++++++--- >> 2 files changed, 54 insertions(+), 6 deletions(-) >> >> diff --git a/drivers/gpu/drm/amd/amdgpu/gfxhub_v2_0.c >> b/drivers/gpu/drm/amd/amdgpu/gfxhub_v2_0.c >> index 76acd7f7723e..b882ac59879a 100644 >> --- a/drivers/gpu/drm/amd/amdgpu/gfxhub_v2_0.c >> +++ b/drivers/gpu/drm/amd/amdgpu/gfxhub_v2_0.c >> @@ -31,6 +31,27 @@ >> #include "soc15_common.h" >> +static const char *gfxhub_client_ids[] = { >> + "CB/DB", >> + "Reserved", >> + "GE1", >> + "GE2", >> + "CPF", >> + "CPC", >> + "CPG", >> + "RLC", >> + "TCP", >> + "SQC (inst)", >> + "SQC (data)", >> + "SQG", >> + "Reserved", >> + "SDMA0", >> + "SDMA1", >> + "GCR", >> + "SDMA2", >> + "SDMA3", >> +}; >> + >> static uint32_t gfxhub_v2_0_get_invalidate_req(unsigned int vmid, >> uint32_t flush_type) >> { >> @@ -55,12 +76,15 @@ static void >> gfxhub_v2_0_print_l2_protection_fault_status(struct amdgpu_device >> *adev, >> uint32_t status) >> { >> + u32 cid = REG_GET_FIELD(status, >> + GCVM_L2_PROTECTION_FAULT_STATUS, CID); >> + >> dev_err(adev->dev, >> "GCVM_L2_PROTECTION_FAULT_STATUS:0x%08X\n", >> status); >> - dev_err(adev->dev, "\t Faulty UTCL2 client ID: 0x%lx\n", >> - REG_GET_FIELD(status, >> - GCVM_L2_PROTECTION_FAULT_STATUS, CID)); >> + dev_err(adev->dev, "\t Faulty UTCL2 client ID: %s (0x%x)\n", >> + cid >= ARRAY_SIZE(gfxhub_client_ids) ? "unknown" : >> gfxhub_client_ids[cid], >> + cid); >> dev_err(adev->dev, "\t MORE_FAULTS: 0x%lx\n", >> REG_GET_FIELD(status, >> GCVM_L2_PROTECTION_FAULT_STATUS, MORE_FAULTS)); >> diff --git a/drivers/gpu/drm/amd/amdgpu/gfxhub_v2_1.c >> b/drivers/gpu/drm/amd/amdgpu/gfxhub_v2_1.c >> index 80c906a0383f..237a9ff5afa0 100644 >> --- a/drivers/gpu/drm/amd/amdgpu/gfxhub_v2_1.c >> +++ b/drivers/gpu/drm/amd/amdgpu/gfxhub_v2_1.c >> @@ -31,6 +31,27 @@ >> #include "soc15_common.h" >> +static const char *gfxhub_client_ids[] = { >> + "CB/DB", >> + "Reserved", >> + "GE1", >> + "GE2", >> + "CPF", >> + "CPC", >> + "CPG", >> + "RLC", >> + "TCP", >> + "SQC (inst)", >> + "SQC (data)", >> + "SQG", >> + "Reserved", >> + "SDMA0", >> + "SDMA1", >> + "GCR", >> + "SDMA2", >> + "SDMA3", >> +}; >> + >> static uint32_t gfxhub_v2_1_get_invalidate_req(unsigned int vmid, >> uint32_t flush_type) >> { >> @@ -55,12 +76,15 @@ static void >> gfxhub_v2_1_print_l2_protection_fault_status(struct amdgpu_device >> *adev, >> uint32_t status) >> { >> + u32 cid = REG_GET_FIELD(status, >> + GCVM_L2_PROTECTION_FAULT_STATUS, CID); >> + >> dev_err(adev->dev, >> "GCVM_L2_PROTECTION_FAULT_STATUS:0x%08X\n", >> status); >> - dev_err(adev->dev, "\t Faulty UTCL2 client ID: 0x%lx\n", >> - REG_GET_FIELD(status, >> - GCVM_L2_PROTECTION_FAULT_STATUS, CID)); >> + dev_err(adev->dev, "\t Faulty UTCL2 client ID: %s (0x%x)\n", >> + cid >= ARRAY_SIZE(gfxhub_client_ids) ? "unknown" : >> gfxhub_client_ids[cid], >> + cid); >> dev_err(adev->dev, "\t MORE_FAULTS: 0x%lx\n", >> REG_GET_FIELD(status, >> GCVM_L2_PROTECTION_FAULT_STATUS, MORE_FAULTS)); > _______________________________________________ > amd-gfx mailing list > amd-gfx@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/amd-gfx _______________________________________________ amd-gfx mailing list amd-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/amd-gfx ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH 2/2] drm/amdgpu/gmc10: print client id string for gfxhub 2020-09-02 7:17 ` Christian König @ 2020-09-02 14:30 ` Deucher, Alexander 0 siblings, 0 replies; 5+ messages in thread From: Deucher, Alexander @ 2020-09-02 14:30 UTC (permalink / raw) To: Kuehling, Felix, Alex Deucher, amd-gfx@lists.freedesktop.org, Koenig, Christian [-- Attachment #1.1: Type: text/plain, Size: 5310 bytes --] [AMD Official Use Only - Internal Distribution Only] I'm working on the mmhub clients list. Will send out patches for them soon. Alex ________________________________ From: Christian König <ckoenig.leichtzumerken@gmail.com> Sent: Wednesday, September 2, 2020 3:17 AM To: Kuehling, Felix <Felix.Kuehling@amd.com>; Alex Deucher <alexdeucher@gmail.com>; amd-gfx@lists.freedesktop.org <amd-gfx@lists.freedesktop.org> Cc: Deucher, Alexander <Alexander.Deucher@amd.com> Subject: Re: [PATCH 2/2] drm/amdgpu/gmc10: print client id string for gfxhub Am 02.09.20 um 04:32 schrieb Felix Kuehling: > Should there a corresponding change in mmhub_v2_0.c? It would be at least nice to have. Maybe we should put a pointer to the array and its size into the hub structure instead? Anyway Reviewed-by: Christian König <christian.koenig@amd.com> for now. Christian. > > Other than that, the series is > > Reviewed-by: Felix Kuehling <Felix.Kuehling@amd.com> > > On 2020-09-01 5:51 p.m., Alex Deucher wrote: >> Print the name of the client rather than the number. This >> makes it easier to debug what block is causing the fault. >> >> Signed-off-by: Alex Deucher <alexander.deucher@amd.com> >> --- >> drivers/gpu/drm/amd/amdgpu/gfxhub_v2_0.c | 30 +++++++++++++++++++++--- >> drivers/gpu/drm/amd/amdgpu/gfxhub_v2_1.c | 30 +++++++++++++++++++++--- >> 2 files changed, 54 insertions(+), 6 deletions(-) >> >> diff --git a/drivers/gpu/drm/amd/amdgpu/gfxhub_v2_0.c >> b/drivers/gpu/drm/amd/amdgpu/gfxhub_v2_0.c >> index 76acd7f7723e..b882ac59879a 100644 >> --- a/drivers/gpu/drm/amd/amdgpu/gfxhub_v2_0.c >> +++ b/drivers/gpu/drm/amd/amdgpu/gfxhub_v2_0.c >> @@ -31,6 +31,27 @@ >> #include "soc15_common.h" >> +static const char *gfxhub_client_ids[] = { >> + "CB/DB", >> + "Reserved", >> + "GE1", >> + "GE2", >> + "CPF", >> + "CPC", >> + "CPG", >> + "RLC", >> + "TCP", >> + "SQC (inst)", >> + "SQC (data)", >> + "SQG", >> + "Reserved", >> + "SDMA0", >> + "SDMA1", >> + "GCR", >> + "SDMA2", >> + "SDMA3", >> +}; >> + >> static uint32_t gfxhub_v2_0_get_invalidate_req(unsigned int vmid, >> uint32_t flush_type) >> { >> @@ -55,12 +76,15 @@ static void >> gfxhub_v2_0_print_l2_protection_fault_status(struct amdgpu_device >> *adev, >> uint32_t status) >> { >> + u32 cid = REG_GET_FIELD(status, >> + GCVM_L2_PROTECTION_FAULT_STATUS, CID); >> + >> dev_err(adev->dev, >> "GCVM_L2_PROTECTION_FAULT_STATUS:0x%08X\n", >> status); >> - dev_err(adev->dev, "\t Faulty UTCL2 client ID: 0x%lx\n", >> - REG_GET_FIELD(status, >> - GCVM_L2_PROTECTION_FAULT_STATUS, CID)); >> + dev_err(adev->dev, "\t Faulty UTCL2 client ID: %s (0x%x)\n", >> + cid >= ARRAY_SIZE(gfxhub_client_ids) ? "unknown" : >> gfxhub_client_ids[cid], >> + cid); >> dev_err(adev->dev, "\t MORE_FAULTS: 0x%lx\n", >> REG_GET_FIELD(status, >> GCVM_L2_PROTECTION_FAULT_STATUS, MORE_FAULTS)); >> diff --git a/drivers/gpu/drm/amd/amdgpu/gfxhub_v2_1.c >> b/drivers/gpu/drm/amd/amdgpu/gfxhub_v2_1.c >> index 80c906a0383f..237a9ff5afa0 100644 >> --- a/drivers/gpu/drm/amd/amdgpu/gfxhub_v2_1.c >> +++ b/drivers/gpu/drm/amd/amdgpu/gfxhub_v2_1.c >> @@ -31,6 +31,27 @@ >> #include "soc15_common.h" >> +static const char *gfxhub_client_ids[] = { >> + "CB/DB", >> + "Reserved", >> + "GE1", >> + "GE2", >> + "CPF", >> + "CPC", >> + "CPG", >> + "RLC", >> + "TCP", >> + "SQC (inst)", >> + "SQC (data)", >> + "SQG", >> + "Reserved", >> + "SDMA0", >> + "SDMA1", >> + "GCR", >> + "SDMA2", >> + "SDMA3", >> +}; >> + >> static uint32_t gfxhub_v2_1_get_invalidate_req(unsigned int vmid, >> uint32_t flush_type) >> { >> @@ -55,12 +76,15 @@ static void >> gfxhub_v2_1_print_l2_protection_fault_status(struct amdgpu_device >> *adev, >> uint32_t status) >> { >> + u32 cid = REG_GET_FIELD(status, >> + GCVM_L2_PROTECTION_FAULT_STATUS, CID); >> + >> dev_err(adev->dev, >> "GCVM_L2_PROTECTION_FAULT_STATUS:0x%08X\n", >> status); >> - dev_err(adev->dev, "\t Faulty UTCL2 client ID: 0x%lx\n", >> - REG_GET_FIELD(status, >> - GCVM_L2_PROTECTION_FAULT_STATUS, CID)); >> + dev_err(adev->dev, "\t Faulty UTCL2 client ID: %s (0x%x)\n", >> + cid >= ARRAY_SIZE(gfxhub_client_ids) ? "unknown" : >> gfxhub_client_ids[cid], >> + cid); >> dev_err(adev->dev, "\t MORE_FAULTS: 0x%lx\n", >> REG_GET_FIELD(status, >> GCVM_L2_PROTECTION_FAULT_STATUS, MORE_FAULTS)); > _______________________________________________ > amd-gfx mailing list > amd-gfx@lists.freedesktop.org > https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Flists.freedesktop.org%2Fmailman%2Flistinfo%2Famd-gfx&data=02%7C01%7Calexander.deucher%40amd.com%7C0d36fe896c0d4f7605d908d84f104fa2%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637346278764796534&sdata=gE2GPBkm3S4KDP9hg9itNXEs%2F4E1QnkPYmELRWsRdKE%3D&reserved=0 [-- Attachment #1.2: Type: text/html, Size: 10831 bytes --] [-- Attachment #2: Type: text/plain, Size: 154 bytes --] _______________________________________________ amd-gfx mailing list amd-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/amd-gfx ^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2020-09-02 14:30 UTC | newest] Thread overview: 5+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2020-09-01 21:51 [PATCH 1/2] drm/amdgpu/gmc9: print client id string for gfxhub Alex Deucher 2020-09-01 21:51 ` [PATCH 2/2] drm/amdgpu/gmc10: " Alex Deucher 2020-09-02 2:32 ` Felix Kuehling 2020-09-02 7:17 ` Christian König 2020-09-02 14:30 ` Deucher, Alexander
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox