/**
  * DOC: noretry (int)
- * Disable retry faults in the GPU memory controller.
+ * Disable XNACK retry in the SQ by default on GFXv9 hardware. On ASICs that
+ * do not support per-process XNACK this also disables retry page faults.
  * (0 = retry enabled, 1 = retry disabled, -1 auto (default))
  */
 MODULE_PARM_DESC(noretry,
 
                tmp = REG_SET_FIELD(tmp, VM_CONTEXT1_CNTL,
                                    PAGE_TABLE_BLOCK_SIZE,
                                    block_size);
-               /* Send no-retry XNACK on fault to suppress VM fault storm. */
+               /* Send no-retry XNACK on fault to suppress VM fault storm.
+                * On Aldebaran, XNACK can be enabled in the SQ per-process.
+                * Retry faults need to be enabled for that to work.
+                */
                tmp = REG_SET_FIELD(tmp, VM_CONTEXT1_CNTL,
                                    RETRY_PERMISSION_OR_INVALID_PAGE_FAULT,
-                                   !adev->gmc.noretry);
+                                   !adev->gmc.noretry ||
+                                   adev->asic_type == CHIP_ALDEBARAN);
                WREG32_SOC15_OFFSET(GC, 0, mmVM_CONTEXT1_CNTL,
                                    i * hub->ctx_distance, tmp);
                WREG32_SOC15_OFFSET(GC, 0, mmVM_CONTEXT1_PAGE_TABLE_START_ADDR_LO32,
 
                tmp = REG_SET_FIELD(tmp, VM_CONTEXT1_CNTL,
                                    PAGE_TABLE_BLOCK_SIZE,
                                    block_size);
-               /* Send no-retry XNACK on fault to suppress VM fault storm. */
+               /* On Aldebaran, XNACK can be enabled in the SQ per-process.
+                * Retry faults need to be enabled for that to work.
+                */
                tmp = REG_SET_FIELD(tmp, VM_CONTEXT1_CNTL,
                                    RETRY_PERMISSION_OR_INVALID_PAGE_FAULT,
-                                   !adev->gmc.noretry);
+                                   1);
                WREG32_SOC15_OFFSET(MMHUB, 0, regVM_CONTEXT1_CNTL,
                                    i * hub->ctx_distance, tmp);
                WREG32_SOC15_OFFSET(MMHUB, 0, regVM_CONTEXT1_PAGE_TABLE_START_ADDR_LO32,