With this series, the kernel is able to mitigate
most page faults on Navi 3 and 4 without causing a
hang and without a need to reset the GPU, when the
amdgpu.noretry=0 module parameter is set.

Fix various issues with retry fault handling.

Enable filter CAM on Navi 3 and 4 which is a
HW block that filters the repeated page fault
interrupts that happen when retry faults are
enabled, making the handling more efficient.

Changes in v2:

* Reordered patches in the series to put bug fixes first
* Enable retry fault interrupt in init_system_aperture_regs()
  instead of in set_fault_enable_default()
* Added a patch to respect the noretry flag on GFX12.1 too

Changes in v3:

* This series now includes fixes for Navi 4 too which
  were previously submitted in a separate series.
* Dropped patch that improved handling of timestamps
  on the page fault interrupts. I'll come up with
  a different solution for that problem later.
* Dropped patches that solve race condition between
  retry fault handling and filter CAM ACK because
  they conflict with Christian's ongoing work.
  I'll revisit that later.
* Reworked the series into smaller patches for
  easier reviews.
* Addressed comments from Tvrtko's review.
  Thank you Tvrtko for taking the time to review!

Changes in v4:

* Program ENABLE_RETRY_FAULT_INTERRUPT bit to 1
  and not according to the gmc.noretry flag,
  as requested by Alex and Christian.
* Applied Mukul's suggestion to use the doorbell
  for the IH retry CAM instead of the MMIO ACK.
* Dropped patch that enabled the retry CAM MMIO ACK.
* Dropped NOALLOC PTE flag as requested by Christian.

Timur Kristóf (11):
  drm/amdgpu: Respect noretry flag for retry faults on GFX12.1
  drm/amdgpu/gfxhub: Enable retry fault interrupts in
    L2_PROTECTION_FAULT_CNTL2
  drm/amdgpu/ih: Don't perturb HW registers when accessing soft IH ring
  drm/amdgpu/ih6.1: Use IH_SW_RING_SIZE for soft IH ring instead of
    PAGE_SIZE
  drm/amdgpu/ih7.0: Use IH_SW_RING_SIZE for soft IH ring instead of
    PAGE_SIZE
  drm/amdgpu/gmc11: Pass cam_index to retry fault handler
  drm/amdgpu/gmc12: Pass cam_index to retry fault handler
  drm/amdgpu/gmc12: Use AMDGPU_PTE_IS_PTE flag for init_pte_flags on
    GFX12.0
  drm/amdgpu/vm: Use init PTE flags in amdgpu_vm_handle_fault()
  drm/amdgpu/ih6.0: Enable retry CAM on Navi 3 dGPUs
  drm/amdgpu/ih7.0: Enable retry CAM on Navi 4 dGPUs

 drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c      |  6 ++--
 drivers/gpu/drm/amd/amdgpu/gfxhub_v11_5_0.c |  9 ++++--
 drivers/gpu/drm/amd/amdgpu/gfxhub_v12_0.c   |  9 ++++--
 drivers/gpu/drm/amd/amdgpu/gfxhub_v12_1.c   |  2 +-
 drivers/gpu/drm/amd/amdgpu/gfxhub_v1_0.c    |  9 ++++--
 drivers/gpu/drm/amd/amdgpu/gfxhub_v1_2.c    |  2 ++
 drivers/gpu/drm/amd/amdgpu/gfxhub_v2_0.c    |  9 ++++--
 drivers/gpu/drm/amd/amdgpu/gfxhub_v2_1.c    |  9 ++++--
 drivers/gpu/drm/amd/amdgpu/gfxhub_v3_0.c    |  9 ++++--
 drivers/gpu/drm/amd/amdgpu/gfxhub_v3_0_3.c  |  9 ++++--
 drivers/gpu/drm/amd/amdgpu/gmc_v11_0.c      |  5 +++-
 drivers/gpu/drm/amd/amdgpu/gmc_v12_0.c      |  7 ++++-
 drivers/gpu/drm/amd/amdgpu/ih_v6_0.c        | 32 +++++++++++++++++++++
 drivers/gpu/drm/amd/amdgpu/ih_v6_1.c        |  9 +++++-
 drivers/gpu/drm/amd/amdgpu/ih_v7_0.c        | 15 ++++++----
 drivers/gpu/drm/amd/amdgpu/navi10_ih.c      |  4 +++
 drivers/gpu/drm/amd/amdgpu/nbif_v6_3_1.c    |  2 +-
 drivers/gpu/drm/amd/amdgpu/nbio_v4_3.c      |  2 +-
 18 files changed, 121 insertions(+), 28 deletions(-)

-- 
2.55.0

Reply via email to