Reviewed-by: Andrey Grodzovsky <andrey.grodzovsky@xxxxxxx>
Andrey
On 2022-03-10 04:07, Somalapuram Amaranath wrote:
Schedule work function with valid PID, process name and
vram lost status during a GPU reset/recovery.
Signed-off-by: Somalapuram Amaranath <Amaranath.Somalapuram@xxxxxxx>
---
drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 13 +++++++++++++
1 file changed, 13 insertions(+)
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
index 02843479e1ef..7ca4f52e393f 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
@@ -4805,6 +4805,19 @@ int amdgpu_do_asic_reset(struct list_head *device_list_handle,
goto out;
vram_lost = amdgpu_device_check_vram_lost(tmp_adev);
+ if (reset_context->job && reset_context->job->vm) {
+ tmp_adev->reset_event_info.pid =
+ reset_context->job->vm->task_info.pid;
+ memset(tmp_adev->reset_event_info.pname, 0, TASK_COMM_LEN);
+ strcpy(tmp_adev->reset_event_info.pname,
+ reset_context->job->vm->task_info.process_name);
+ } else {
+ tmp_adev->reset_event_info.pid = 0;
+ memset(tmp_adev->reset_event_info.pname, 0, TASK_COMM_LEN);
+ }
+
+ tmp_adev->reset_event_info.flags = vram_lost;
+ schedule_work(&tmp_adev->gpu_reset_event_work);
if (vram_lost) {
DRM_INFO("VRAM is lost due to GPU reset!\n");
amdgpu_inc_vram_lost(tmp_adev);