drm/amdgpu: Print the IH client ID name when vm fault happens
This gives more information and improves productivity. Signed-off-by: Yong Zhao <Yong.Zhao@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
@@ -65,6 +65,40 @@
|
|||||||
|
|
||||||
#define AMDGPU_WAIT_IDLE_TIMEOUT 200
|
#define AMDGPU_WAIT_IDLE_TIMEOUT 200
|
||||||
|
|
||||||
|
const char *soc15_ih_clientid_name[] = {
|
||||||
|
"IH",
|
||||||
|
"SDMA2 or ACP",
|
||||||
|
"ATHUB",
|
||||||
|
"BIF",
|
||||||
|
"SDMA3 or DCE",
|
||||||
|
"SDMA4 or ISP",
|
||||||
|
"VMC1 or PCIE0",
|
||||||
|
"RLC",
|
||||||
|
"SDMA0",
|
||||||
|
"SDMA1",
|
||||||
|
"SE0SH",
|
||||||
|
"SE1SH",
|
||||||
|
"SE2SH",
|
||||||
|
"SE3SH",
|
||||||
|
"VCN1 or UVD1",
|
||||||
|
"THM",
|
||||||
|
"VCN or UVD",
|
||||||
|
"SDMA5 or VCE0",
|
||||||
|
"VMC",
|
||||||
|
"SDMA6 or XDMA",
|
||||||
|
"GRBM_CP",
|
||||||
|
"ATS",
|
||||||
|
"ROM_SMUIO",
|
||||||
|
"DF",
|
||||||
|
"SDMA7 or VCE1",
|
||||||
|
"PWR",
|
||||||
|
"UTCL2",
|
||||||
|
"EA",
|
||||||
|
"UTCL2LOG",
|
||||||
|
"MP0",
|
||||||
|
"MP1"
|
||||||
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* amdgpu_hotplug_work_func - work handler for display hotplug event
|
* amdgpu_hotplug_work_func - work handler for display hotplug event
|
||||||
*
|
*
|
||||||
|
|||||||
@@ -152,8 +152,9 @@ static int gmc_v10_0_process_interrupt(struct amdgpu_device *adev,
|
|||||||
entry->src_id, entry->ring_id, entry->vmid,
|
entry->src_id, entry->ring_id, entry->vmid,
|
||||||
entry->pasid, task_info.process_name, task_info.tgid,
|
entry->pasid, task_info.process_name, task_info.tgid,
|
||||||
task_info.task_name, task_info.pid);
|
task_info.task_name, task_info.pid);
|
||||||
dev_err(adev->dev, " in page starting at address 0x%012llx from client %d\n",
|
dev_err(adev->dev, " in page starting at address 0x%016llx from client 0x%x (%s)\n",
|
||||||
addr, entry->client_id);
|
addr, entry->client_id,
|
||||||
|
soc15_ih_clientid_name[entry->client_id]);
|
||||||
|
|
||||||
if (!amdgpu_sriov_vf(adev))
|
if (!amdgpu_sriov_vf(adev))
|
||||||
hub->vmhub_funcs->print_l2_protection_fault_status(adev,
|
hub->vmhub_funcs->print_l2_protection_fault_status(adev,
|
||||||
|
|||||||
@@ -521,8 +521,9 @@ static int gmc_v9_0_process_interrupt(struct amdgpu_device *adev,
|
|||||||
entry->src_id, entry->ring_id, entry->vmid,
|
entry->src_id, entry->ring_id, entry->vmid,
|
||||||
entry->pasid, task_info.process_name, task_info.tgid,
|
entry->pasid, task_info.process_name, task_info.tgid,
|
||||||
task_info.task_name, task_info.pid);
|
task_info.task_name, task_info.pid);
|
||||||
dev_err(adev->dev, " in page starting at address 0x%012llx from client %d\n",
|
dev_err(adev->dev, " in page starting at address 0x%016llx from IH client 0x%x (%s)\n",
|
||||||
addr, entry->client_id);
|
addr, entry->client_id,
|
||||||
|
soc15_ih_clientid_name[entry->client_id]);
|
||||||
|
|
||||||
if (amdgpu_sriov_vf(adev))
|
if (amdgpu_sriov_vf(adev))
|
||||||
return 0;
|
return 0;
|
||||||
|
|||||||
@@ -25,7 +25,9 @@
|
|||||||
#define __SOC15_IH_CLIENTID_H__
|
#define __SOC15_IH_CLIENTID_H__
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* vega10+ IH clients
|
* Vega10+ IH clients
|
||||||
|
* Whenever this structure is updated, which should not happen, make sure
|
||||||
|
* soc15_ih_clientid_name in the below is also updated accordingly.
|
||||||
*/
|
*/
|
||||||
enum soc15_ih_clientid {
|
enum soc15_ih_clientid {
|
||||||
SOC15_IH_CLIENTID_IH = 0x00,
|
SOC15_IH_CLIENTID_IH = 0x00,
|
||||||
@@ -74,6 +76,8 @@ enum soc15_ih_clientid {
|
|||||||
SOC15_IH_CLIENTID_VMC1 = SOC15_IH_CLIENTID_PCIE0,
|
SOC15_IH_CLIENTID_VMC1 = SOC15_IH_CLIENTID_PCIE0,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
extern const char *soc15_ih_clientid_name[];
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user