drm/amdgpu: Handle GPUVM fault storms
authorFelix Kuehling <Felix.Kuehling@amd.com>
Thu, 21 Sep 2017 20:26:41 +0000 (16:26 -0400)
committerAlex Deucher <alexander.deucher@amd.com>
Thu, 28 Sep 2017 20:03:30 +0000 (16:03 -0400)
commitc98171ccf6580407d07a3b5dc8188ce9e1f4f7ca
tree191e13e83451ea87c6e4fdc758425b046a0c4bf8
parent1bab0fc01b84c1aa8a65a1f1de885e1faab48264
drm/amdgpu: Handle GPUVM fault storms

When many wavefronts cause VM faults at the same time, it can
overwhelm the interrupt handler and cause IH ring overflows before
the driver can notify or kill the faulting application.

As a workaround I'm introducing limited per-VM fault credit. After
that number of VM faults have occurred, further VM faults are
filtered out at the prescreen stage of processing.

This depends on the PASID in the interrupt packet, so it currently
only works for KFD contexts.

Signed-off-by: Felix Kuehling <Felix.Kuehling@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
drivers/gpu/drm/amd/amdgpu/amdgpu_vm.h
drivers/gpu/drm/amd/amdgpu/cik_ih.c
drivers/gpu/drm/amd/amdgpu/cz_ih.c
drivers/gpu/drm/amd/amdgpu/iceland_ih.c
drivers/gpu/drm/amd/amdgpu/tonga_ih.c
drivers/gpu/drm/amd/amdgpu/vega10_ih.c