[PATCH v2] drm/amdgpu: replace VM fault error by info logs

Felix Kuehling felix.kuehling at amd.com
Mon Apr 25 15:29:01 UTC 2022


Am 2022-04-23 um 13:54 schrieb Christian König:
> Am 23.04.22 um 04:24 schrieb Alex Sierra:
>> This is not a kernel error. These logs are caused by VM faults that
>> could not be handled. Typically, generated by user mode applications.
>
> Well it's still a hardware fault which should be logged as an error.

At least in ROCm compute applications, a VM fault does not take down the 
hardware. It only leads to termination of the process that caused the 
fault. It's very similar to a segfault in an application, which is not 
considered a HW fault either. Other processes are completely unaffected. 
The cause of the error is typically in user mode. I think the general 
policy is, that user mode errors should not spam the kernel logs with 
error messages. The messages are useful for debugging application 
issues, so it's good to have them. But IMHO they should not be error 
messages. Such messages often lead to spurious bug reports against the 
kernel for things that aren't really kernel issues.

Regards,
   Felix


>
> So I'm absolutely not keen about reducing it to just an information.
>
> Regards,
> Christian.
>
>>
>> Signed-off-by: Alex Sierra <alex.sierra at amd.com>
>> ---
>>   drivers/gpu/drm/amd/amdgpu/gfxhub_v2_0.c | 14 +++++++-------
>>   drivers/gpu/drm/amd/amdgpu/gfxhub_v2_1.c | 14 +++++++-------
>>   drivers/gpu/drm/amd/amdgpu/gmc_v10_0.c   |  4 ++--
>>   drivers/gpu/drm/amd/amdgpu/gmc_v6_0.c    |  8 ++++----
>>   drivers/gpu/drm/amd/amdgpu/gmc_v7_0.c    |  8 ++++----
>>   drivers/gpu/drm/amd/amdgpu/gmc_v8_0.c    |  8 ++++----
>>   drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c    | 20 ++++++++++----------
>>   drivers/gpu/drm/amd/amdgpu/mmhub_v2_0.c  | 14 +++++++-------
>>   drivers/gpu/drm/amd/amdgpu/mmhub_v2_3.c  | 14 +++++++-------
>>   9 files changed, 52 insertions(+), 52 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/amd/amdgpu/gfxhub_v2_0.c 
>> b/drivers/gpu/drm/amd/amdgpu/gfxhub_v2_0.c
>> index 6e0ace2fbfab..c226a4803086 100644
>> --- a/drivers/gpu/drm/amd/amdgpu/gfxhub_v2_0.c
>> +++ b/drivers/gpu/drm/amd/amdgpu/gfxhub_v2_0.c
>> @@ -79,25 +79,25 @@ 
>> gfxhub_v2_0_print_l2_protection_fault_status(struct amdgpu_device *adev,
>>       u32 cid = REG_GET_FIELD(status,
>>                   GCVM_L2_PROTECTION_FAULT_STATUS, CID);
>>   -    dev_err(adev->dev,
>> +    dev_info(adev->dev,
>>           "GCVM_L2_PROTECTION_FAULT_STATUS:0x%08X\n",
>>           status);
>> -    dev_err(adev->dev, "\t Faulty UTCL2 client ID: %s (0x%x)\n",
>> +    dev_info(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",
>> +    dev_info(adev->dev, "\t MORE_FAULTS: 0x%lx\n",
>>           REG_GET_FIELD(status,
>>           GCVM_L2_PROTECTION_FAULT_STATUS, MORE_FAULTS));
>> -    dev_err(adev->dev, "\t WALKER_ERROR: 0x%lx\n",
>> +    dev_info(adev->dev, "\t WALKER_ERROR: 0x%lx\n",
>>           REG_GET_FIELD(status,
>>           GCVM_L2_PROTECTION_FAULT_STATUS, WALKER_ERROR));
>> -    dev_err(adev->dev, "\t PERMISSION_FAULTS: 0x%lx\n",
>> +    dev_info(adev->dev, "\t PERMISSION_FAULTS: 0x%lx\n",
>>           REG_GET_FIELD(status,
>>           GCVM_L2_PROTECTION_FAULT_STATUS, PERMISSION_FAULTS));
>> -    dev_err(adev->dev, "\t MAPPING_ERROR: 0x%lx\n",
>> +    dev_info(adev->dev, "\t MAPPING_ERROR: 0x%lx\n",
>>           REG_GET_FIELD(status,
>>           GCVM_L2_PROTECTION_FAULT_STATUS, MAPPING_ERROR));
>> -    dev_err(adev->dev, "\t RW: 0x%lx\n",
>> +    dev_info(adev->dev, "\t RW: 0x%lx\n",
>>           REG_GET_FIELD(status,
>>           GCVM_L2_PROTECTION_FAULT_STATUS, RW));
>>   }
>> diff --git a/drivers/gpu/drm/amd/amdgpu/gfxhub_v2_1.c 
>> b/drivers/gpu/drm/amd/amdgpu/gfxhub_v2_1.c
>> index ff738e9725ee..fdcca1477592 100644
>> --- a/drivers/gpu/drm/amd/amdgpu/gfxhub_v2_1.c
>> +++ b/drivers/gpu/drm/amd/amdgpu/gfxhub_v2_1.c
>> @@ -82,25 +82,25 @@ 
>> gfxhub_v2_1_print_l2_protection_fault_status(struct amdgpu_device *adev,
>>       u32 cid = REG_GET_FIELD(status,
>>                   GCVM_L2_PROTECTION_FAULT_STATUS, CID);
>>   -    dev_err(adev->dev,
>> +    dev_info(adev->dev,
>>           "GCVM_L2_PROTECTION_FAULT_STATUS:0x%08X\n",
>>           status);
>> -    dev_err(adev->dev, "\t Faulty UTCL2 client ID: %s (0x%x)\n",
>> +    dev_info(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",
>> +    dev_info(adev->dev, "\t MORE_FAULTS: 0x%lx\n",
>>           REG_GET_FIELD(status,
>>           GCVM_L2_PROTECTION_FAULT_STATUS, MORE_FAULTS));
>> -    dev_err(adev->dev, "\t WALKER_ERROR: 0x%lx\n",
>> +    dev_info(adev->dev, "\t WALKER_ERROR: 0x%lx\n",
>>           REG_GET_FIELD(status,
>>           GCVM_L2_PROTECTION_FAULT_STATUS, WALKER_ERROR));
>> -    dev_err(adev->dev, "\t PERMISSION_FAULTS: 0x%lx\n",
>> +    dev_info(adev->dev, "\t PERMISSION_FAULTS: 0x%lx\n",
>>           REG_GET_FIELD(status,
>>           GCVM_L2_PROTECTION_FAULT_STATUS, PERMISSION_FAULTS));
>> -    dev_err(adev->dev, "\t MAPPING_ERROR: 0x%lx\n",
>> +    dev_info(adev->dev, "\t MAPPING_ERROR: 0x%lx\n",
>>           REG_GET_FIELD(status,
>>           GCVM_L2_PROTECTION_FAULT_STATUS, MAPPING_ERROR));
>> -    dev_err(adev->dev, "\t RW: 0x%lx\n",
>> +    dev_info(adev->dev, "\t RW: 0x%lx\n",
>>           REG_GET_FIELD(status,
>>           GCVM_L2_PROTECTION_FAULT_STATUS, RW));
>>   }
>> diff --git a/drivers/gpu/drm/amd/amdgpu/gmc_v10_0.c 
>> b/drivers/gpu/drm/amd/amdgpu/gmc_v10_0.c
>> index a455e59f41f4..864fcc0edb90 100644
>> --- a/drivers/gpu/drm/amd/amdgpu/gmc_v10_0.c
>> +++ b/drivers/gpu/drm/amd/amdgpu/gmc_v10_0.c
>> @@ -148,14 +148,14 @@ static int gmc_v10_0_process_interrupt(struct 
>> amdgpu_device *adev,
>>       memset(&task_info, 0, sizeof(struct amdgpu_task_info));
>>       amdgpu_vm_get_task_info(adev, entry->pasid, &task_info);
>>   -    dev_err(adev->dev,
>> +    dev_info(adev->dev,
>>           "[%s] page fault (src_id:%u ring:%u vmid:%u pasid:%u, "
>>           "for process %s pid %d thread %s pid %d)\n",
>>           entry->vmid_src ? "mmhub" : "gfxhub",
>>           entry->src_id, entry->ring_id, entry->vmid,
>>           entry->pasid, task_info.process_name, task_info.tgid,
>>           task_info.task_name, task_info.pid);
>> -    dev_err(adev->dev, "  in page starting at address 0x%016llx from 
>> client 0x%x (%s)\n",
>> +    dev_info(adev->dev, "  in page starting at address 0x%016llx 
>> from client 0x%x (%s)\n",
>>           addr, entry->client_id,
>>           soc15_ih_clientid_name[entry->client_id]);
>>   diff --git a/drivers/gpu/drm/amd/amdgpu/gmc_v6_0.c 
>> b/drivers/gpu/drm/amd/amdgpu/gmc_v6_0.c
>> index ec291d28edff..3d830fd7706b 100644
>> --- a/drivers/gpu/drm/amd/amdgpu/gmc_v6_0.c
>> +++ b/drivers/gpu/drm/amd/amdgpu/gmc_v6_0.c
>> @@ -620,7 +620,7 @@ static void gmc_v6_0_vm_decode_fault(struct 
>> amdgpu_device *adev,
>>       mc_id = REG_GET_FIELD(status, VM_CONTEXT1_PROTECTION_FAULT_STATUS,
>>                     MEMORY_CLIENT_ID);
>>   -    dev_err(adev->dev, "VM fault (0x%02x, vmid %d) at page %u, %s 
>> from '%s' (0x%08x) (%d)\n",
>> +    dev_info(adev->dev, "VM fault (0x%02x, vmid %d) at page %u, %s 
>> from '%s' (0x%08x) (%d)\n",
>>              protections, vmid, addr,
>>              REG_GET_FIELD(status, VM_CONTEXT1_PROTECTION_FAULT_STATUS,
>>                    MEMORY_CLIENT_RW) ?
>> @@ -1083,11 +1083,11 @@ static int gmc_v6_0_process_interrupt(struct 
>> amdgpu_device *adev,
>>           gmc_v6_0_set_fault_enable_default(adev, false);
>>         if (printk_ratelimit()) {
>> -        dev_err(adev->dev, "GPU fault detected: %d 0x%08x\n",
>> +        dev_info(adev->dev, "GPU fault detected: %d 0x%08x\n",
>>               entry->src_id, entry->src_data[0]);
>> -        dev_err(adev->dev, " VM_CONTEXT1_PROTECTION_FAULT_ADDR   
>> 0x%08X\n",
>> +        dev_info(adev->dev, " VM_CONTEXT1_PROTECTION_FAULT_ADDR   
>> 0x%08X\n",
>>               addr);
>> -        dev_err(adev->dev, " VM_CONTEXT1_PROTECTION_FAULT_STATUS 
>> 0x%08X\n",
>> +        dev_info(adev->dev, " VM_CONTEXT1_PROTECTION_FAULT_STATUS 
>> 0x%08X\n",
>>               status);
>>           gmc_v6_0_vm_decode_fault(adev, status, addr, 0);
>>       }
>> diff --git a/drivers/gpu/drm/amd/amdgpu/gmc_v7_0.c 
>> b/drivers/gpu/drm/amd/amdgpu/gmc_v7_0.c
>> index 979da6f510e8..1f3ceb03b47b 100644
>> --- a/drivers/gpu/drm/amd/amdgpu/gmc_v7_0.c
>> +++ b/drivers/gpu/drm/amd/amdgpu/gmc_v7_0.c
>> @@ -781,7 +781,7 @@ static void gmc_v7_0_vm_decode_fault(struct 
>> amdgpu_device *adev, u32 status,
>>       mc_id = REG_GET_FIELD(status, VM_CONTEXT1_PROTECTION_FAULT_STATUS,
>>                     MEMORY_CLIENT_ID);
>>   -    dev_err(adev->dev, "VM fault (0x%02x, vmid %d, pasid %d) at 
>> page %u, %s from '%s' (0x%08x) (%d)\n",
>> +    dev_info(adev->dev, "VM fault (0x%02x, vmid %d, pasid %d) at 
>> page %u, %s from '%s' (0x%08x) (%d)\n",
>>              protections, vmid, pasid, addr,
>>              REG_GET_FIELD(status, VM_CONTEXT1_PROTECTION_FAULT_STATUS,
>>                    MEMORY_CLIENT_RW) ?
>> @@ -1286,11 +1286,11 @@ static int gmc_v7_0_process_interrupt(struct 
>> amdgpu_device *adev,
>>           gmc_v7_0_set_fault_enable_default(adev, false);
>>         if (printk_ratelimit()) {
>> -        dev_err(adev->dev, "GPU fault detected: %d 0x%08x\n",
>> +        dev_info(adev->dev, "GPU fault detected: %d 0x%08x\n",
>>               entry->src_id, entry->src_data[0]);
>> -        dev_err(adev->dev, " VM_CONTEXT1_PROTECTION_FAULT_ADDR   
>> 0x%08X\n",
>> +        dev_info(adev->dev, " VM_CONTEXT1_PROTECTION_FAULT_ADDR   
>> 0x%08X\n",
>>               addr);
>> -        dev_err(adev->dev, " VM_CONTEXT1_PROTECTION_FAULT_STATUS 
>> 0x%08X\n",
>> +        dev_info(adev->dev, " VM_CONTEXT1_PROTECTION_FAULT_STATUS 
>> 0x%08X\n",
>>               status);
>>           gmc_v7_0_vm_decode_fault(adev, status, addr, mc_client,
>>                        entry->pasid);
>> diff --git a/drivers/gpu/drm/amd/amdgpu/gmc_v8_0.c 
>> b/drivers/gpu/drm/amd/amdgpu/gmc_v8_0.c
>> index 382dde1ce74c..5be3f4f77c49 100644
>> --- a/drivers/gpu/drm/amd/amdgpu/gmc_v8_0.c
>> +++ b/drivers/gpu/drm/amd/amdgpu/gmc_v8_0.c
>> @@ -1021,7 +1021,7 @@ static void gmc_v8_0_vm_decode_fault(struct 
>> amdgpu_device *adev, u32 status,
>>       mc_id = REG_GET_FIELD(status, VM_CONTEXT1_PROTECTION_FAULT_STATUS,
>>                     MEMORY_CLIENT_ID);
>>   -    dev_err(adev->dev, "VM fault (0x%02x, vmid %d, pasid %d) at 
>> page %u, %s from '%s' (0x%08x) (%d)\n",
>> +    dev_info(adev->dev, "VM fault (0x%02x, vmid %d, pasid %d) at 
>> page %u, %s from '%s' (0x%08x) (%d)\n",
>>              protections, vmid, pasid, addr,
>>              REG_GET_FIELD(status, VM_CONTEXT1_PROTECTION_FAULT_STATUS,
>>                    MEMORY_CLIENT_RW) ?
>> @@ -1466,12 +1466,12 @@ static int gmc_v8_0_process_interrupt(struct 
>> amdgpu_device *adev,
>>           memset(&task_info, 0, sizeof(struct amdgpu_task_info));
>>           amdgpu_vm_get_task_info(adev, entry->pasid, &task_info);
>>   -        dev_err(adev->dev, "GPU fault detected: %d 0x%08x for 
>> process %s pid %d thread %s pid %d\n",
>> +        dev_info(adev->dev, "GPU fault detected: %d 0x%08x for 
>> process %s pid %d thread %s pid %d\n",
>>               entry->src_id, entry->src_data[0], task_info.process_name,
>>               task_info.tgid, task_info.task_name, task_info.pid);
>> -        dev_err(adev->dev, " VM_CONTEXT1_PROTECTION_FAULT_ADDR   
>> 0x%08X\n",
>> +        dev_info(adev->dev, " VM_CONTEXT1_PROTECTION_FAULT_ADDR   
>> 0x%08X\n",
>>               addr);
>> -        dev_err(adev->dev, " VM_CONTEXT1_PROTECTION_FAULT_STATUS 
>> 0x%08X\n",
>> +        dev_info(adev->dev, " VM_CONTEXT1_PROTECTION_FAULT_STATUS 
>> 0x%08X\n",
>>               status);
>>           gmc_v8_0_vm_decode_fault(adev, status, addr, mc_client,
>>                        entry->pasid);
>> diff --git a/drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c 
>> b/drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c
>> index 22761a3bb818..98c8de7307be 100644
>> --- a/drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c
>> +++ b/drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c
>> @@ -582,14 +582,14 @@ static int gmc_v9_0_process_interrupt(struct 
>> amdgpu_device *adev,
>>       memset(&task_info, 0, sizeof(struct amdgpu_task_info));
>>       amdgpu_vm_get_task_info(adev, entry->pasid, &task_info);
>>   -    dev_err(adev->dev,
>> +    dev_info(adev->dev,
>>           "[%s] %s page fault (src_id:%u ring:%u vmid:%u "
>>           "pasid:%u, for process %s pid %d thread %s pid %d)\n",
>>           hub_name, retry_fault ? "retry" : "no-retry",
>>           entry->src_id, entry->ring_id, entry->vmid,
>>           entry->pasid, task_info.process_name, task_info.tgid,
>>           task_info.task_name, task_info.pid);
>> -    dev_err(adev->dev, "  in page starting at address 0x%016llx from 
>> IH client 0x%x (%s)\n",
>> +    dev_info(adev->dev, "  in page starting at address 0x%016llx 
>> from IH client 0x%x (%s)\n",
>>           addr, entry->client_id,
>>           soc15_ih_clientid_name[entry->client_id]);
>>   @@ -611,11 +611,11 @@ static int gmc_v9_0_process_interrupt(struct 
>> amdgpu_device *adev,
>>       WREG32_P(hub->vm_l2_pro_fault_cntl, 1, ~1);
>>     -    dev_err(adev->dev,
>> +    dev_info(adev->dev,
>>           "VM_L2_PROTECTION_FAULT_STATUS:0x%08X\n",
>>           status);
>>       if (hub == &adev->vmhub[AMDGPU_GFXHUB_0]) {
>> -        dev_err(adev->dev, "\t Faulty UTCL2 client ID: %s (0x%x)\n",
>> +        dev_info(adev->dev, "\t Faulty UTCL2 client ID: %s (0x%x)\n",
>>               cid >= ARRAY_SIZE(gfxhub_client_ids) ? "unknown" :
>>               gfxhub_client_ids[cid],
>>               cid);
>> @@ -648,22 +648,22 @@ static int gmc_v9_0_process_interrupt(struct 
>> amdgpu_device *adev,
>>               mmhub_cid = NULL;
>>               break;
>>           }
>> -        dev_err(adev->dev, "\t Faulty UTCL2 client ID: %s (0x%x)\n",
>> +        dev_info(adev->dev, "\t Faulty UTCL2 client ID: %s (0x%x)\n",
>>               mmhub_cid ? mmhub_cid : "unknown", cid);
>>       }
>> -    dev_err(adev->dev, "\t MORE_FAULTS: 0x%lx\n",
>> +    dev_info(adev->dev, "\t MORE_FAULTS: 0x%lx\n",
>>           REG_GET_FIELD(status,
>>           VM_L2_PROTECTION_FAULT_STATUS, MORE_FAULTS));
>> -    dev_err(adev->dev, "\t WALKER_ERROR: 0x%lx\n",
>> +    dev_info(adev->dev, "\t WALKER_ERROR: 0x%lx\n",
>>           REG_GET_FIELD(status,
>>           VM_L2_PROTECTION_FAULT_STATUS, WALKER_ERROR));
>> -    dev_err(adev->dev, "\t PERMISSION_FAULTS: 0x%lx\n",
>> +    dev_info(adev->dev, "\t PERMISSION_FAULTS: 0x%lx\n",
>>           REG_GET_FIELD(status,
>>           VM_L2_PROTECTION_FAULT_STATUS, PERMISSION_FAULTS));
>> -    dev_err(adev->dev, "\t MAPPING_ERROR: 0x%lx\n",
>> +    dev_info(adev->dev, "\t MAPPING_ERROR: 0x%lx\n",
>>           REG_GET_FIELD(status,
>>           VM_L2_PROTECTION_FAULT_STATUS, MAPPING_ERROR));
>> -    dev_err(adev->dev, "\t RW: 0x%x\n", rw);
>> +    dev_info(adev->dev, "\t RW: 0x%x\n", rw);
>>       return 0;
>>   }
>>   diff --git a/drivers/gpu/drm/amd/amdgpu/mmhub_v2_0.c 
>> b/drivers/gpu/drm/amd/amdgpu/mmhub_v2_0.c
>> index 636abd855686..ec8c8b2cab36 100644
>> --- a/drivers/gpu/drm/amd/amdgpu/mmhub_v2_0.c
>> +++ b/drivers/gpu/drm/amd/amdgpu/mmhub_v2_0.c
>> @@ -150,7 +150,7 @@ 
>> mmhub_v2_0_print_l2_protection_fault_status(struct amdgpu_device *adev,
>>       rw = REG_GET_FIELD(status,
>>                  MMVM_L2_PROTECTION_FAULT_STATUS, RW);
>>   -    dev_err(adev->dev,
>> +    dev_info(adev->dev,
>>           "MMVM_L2_PROTECTION_FAULT_STATUS:0x%08X\n",
>>           status);
>>       switch (adev->ip_versions[MMHUB_HWIP][0]) {
>> @@ -169,21 +169,21 @@ 
>> mmhub_v2_0_print_l2_protection_fault_status(struct amdgpu_device *adev,
>>           mmhub_cid = NULL;
>>           break;
>>       }
>> -    dev_err(adev->dev, "\t Faulty UTCL2 client ID: %s (0x%x)\n",
>> +    dev_info(adev->dev, "\t Faulty UTCL2 client ID: %s (0x%x)\n",
>>           mmhub_cid ? mmhub_cid : "unknown", cid);
>> -    dev_err(adev->dev, "\t MORE_FAULTS: 0x%lx\n",
>> +    dev_info(adev->dev, "\t MORE_FAULTS: 0x%lx\n",
>>           REG_GET_FIELD(status,
>>           MMVM_L2_PROTECTION_FAULT_STATUS, MORE_FAULTS));
>> -    dev_err(adev->dev, "\t WALKER_ERROR: 0x%lx\n",
>> +    dev_info(adev->dev, "\t WALKER_ERROR: 0x%lx\n",
>>           REG_GET_FIELD(status,
>>           MMVM_L2_PROTECTION_FAULT_STATUS, WALKER_ERROR));
>> -    dev_err(adev->dev, "\t PERMISSION_FAULTS: 0x%lx\n",
>> +    dev_info(adev->dev, "\t PERMISSION_FAULTS: 0x%lx\n",
>>           REG_GET_FIELD(status,
>>           MMVM_L2_PROTECTION_FAULT_STATUS, PERMISSION_FAULTS));
>> -    dev_err(adev->dev, "\t MAPPING_ERROR: 0x%lx\n",
>> +    dev_info(adev->dev, "\t MAPPING_ERROR: 0x%lx\n",
>>           REG_GET_FIELD(status,
>>           MMVM_L2_PROTECTION_FAULT_STATUS, MAPPING_ERROR));
>> -    dev_err(adev->dev, "\t RW: 0x%x\n", rw);
>> +    dev_info(adev->dev, "\t RW: 0x%x\n", rw);
>>   }
>>     static void mmhub_v2_0_setup_vm_pt_regs(struct amdgpu_device 
>> *adev, uint32_t vmid,
>> diff --git a/drivers/gpu/drm/amd/amdgpu/mmhub_v2_3.c 
>> b/drivers/gpu/drm/amd/amdgpu/mmhub_v2_3.c
>> index ff44c5364a8c..72dda850e7d3 100644
>> --- a/drivers/gpu/drm/amd/amdgpu/mmhub_v2_3.c
>> +++ b/drivers/gpu/drm/amd/amdgpu/mmhub_v2_3.c
>> @@ -87,7 +87,7 @@ mmhub_v2_3_print_l2_protection_fault_status(struct 
>> amdgpu_device *adev,
>>       rw = REG_GET_FIELD(status,
>>                  MMVM_L2_PROTECTION_FAULT_STATUS, RW);
>>   -    dev_err(adev->dev,
>> +    dev_info(adev->dev,
>>           "MMVM_L2_PROTECTION_FAULT_STATUS:0x%08X\n",
>>           status);
>>       switch (adev->ip_versions[MMHUB_HWIP][0]) {
>> @@ -100,21 +100,21 @@ 
>> mmhub_v2_3_print_l2_protection_fault_status(struct amdgpu_device *adev,
>>           mmhub_cid = NULL;
>>           break;
>>       }
>> -    dev_err(adev->dev, "\t Faulty UTCL2 client ID: %s (0x%x)\n",
>> +    dev_info(adev->dev, "\t Faulty UTCL2 client ID: %s (0x%x)\n",
>>           mmhub_cid ? mmhub_cid : "unknown", cid);
>> -    dev_err(adev->dev, "\t MORE_FAULTS: 0x%lx\n",
>> +    dev_info(adev->dev, "\t MORE_FAULTS: 0x%lx\n",
>>           REG_GET_FIELD(status,
>>           MMVM_L2_PROTECTION_FAULT_STATUS, MORE_FAULTS));
>> -    dev_err(adev->dev, "\t WALKER_ERROR: 0x%lx\n",
>> +    dev_info(adev->dev, "\t WALKER_ERROR: 0x%lx\n",
>>           REG_GET_FIELD(status,
>>           MMVM_L2_PROTECTION_FAULT_STATUS, WALKER_ERROR));
>> -    dev_err(adev->dev, "\t PERMISSION_FAULTS: 0x%lx\n",
>> +    dev_info(adev->dev, "\t PERMISSION_FAULTS: 0x%lx\n",
>>           REG_GET_FIELD(status,
>>           MMVM_L2_PROTECTION_FAULT_STATUS, PERMISSION_FAULTS));
>> -    dev_err(adev->dev, "\t MAPPING_ERROR: 0x%lx\n",
>> +    dev_info(adev->dev, "\t MAPPING_ERROR: 0x%lx\n",
>>           REG_GET_FIELD(status,
>>           MMVM_L2_PROTECTION_FAULT_STATUS, MAPPING_ERROR));
>> -    dev_err(adev->dev, "\t RW: 0x%x\n", rw);
>> +    dev_info(adev->dev, "\t RW: 0x%x\n", rw);
>>   }
>>     static void mmhub_v2_3_setup_vm_pt_regs(struct amdgpu_device *adev,
>


More information about the amd-gfx mailing list