mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/herbert/cryptodev-2.6.git
synced 2026-04-27 03:49:57 -04:00
drm/amdgpu: add new INFO ioctl query for the last GPU page fault
Add a interface to query the last GPU page fault for the process. Useful for debugging context lost errors. v2: split vmhub representation between kernel and userspace v3: add locking when fetching fault info in INFO IOCTL Mesa MR: https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23238 libdrm MR: https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23238 Cc: samuel.pitoiset@gmail.com Reviewed-by: Christian König <christian.koenig@amd.com> Acked-by: Guchun Chen <guchun.chen@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
@@ -2756,7 +2756,21 @@ void amdgpu_vm_update_fault_cache(struct amdgpu_device *adev,
|
||||
if (vm) {
|
||||
vm->fault_info.addr = addr;
|
||||
vm->fault_info.status = status;
|
||||
vm->fault_info.vmhub = vmhub;
|
||||
if (AMDGPU_IS_GFXHUB(vmhub)) {
|
||||
vm->fault_info.vmhub = AMDGPU_VMHUB_TYPE_GFX;
|
||||
vm->fault_info.vmhub |=
|
||||
(vmhub - AMDGPU_GFXHUB_START) << AMDGPU_VMHUB_IDX_SHIFT;
|
||||
} else if (AMDGPU_IS_MMHUB0(vmhub)) {
|
||||
vm->fault_info.vmhub = AMDGPU_VMHUB_TYPE_MM0;
|
||||
vm->fault_info.vmhub |=
|
||||
(vmhub - AMDGPU_MMHUB0_START) << AMDGPU_VMHUB_IDX_SHIFT;
|
||||
} else if (AMDGPU_IS_MMHUB1(vmhub)) {
|
||||
vm->fault_info.vmhub = AMDGPU_VMHUB_TYPE_MM1;
|
||||
vm->fault_info.vmhub |=
|
||||
(vmhub - AMDGPU_MMHUB1_START) << AMDGPU_VMHUB_IDX_SHIFT;
|
||||
} else {
|
||||
WARN_ONCE(1, "Invalid vmhub %u\n", vmhub);
|
||||
}
|
||||
}
|
||||
xa_unlock_irqrestore(&adev->vm_manager.pasids, flags);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user