struct kfd_process_device *pdd;
struct amdgpu_device *adev = dqm->dev->adev;
struct amdgpu_vmhub *hub = &adev->vmhub[AMDGPU_GFXHUB(0)];
+ bool xnack_enabled;
pdd = qpd_to_pdd(qpd);
qpd->vm_cntx_cntl = hub->vm_cntx_cntl;
qpd->sh_mem_ape1_base = 0;
}
- if (KFD_SUPPORT_XNACK_PER_PROCESS(dqm->dev)) {
- if (!pdd->process->xnack_enabled) {
- qpd->sh_mem_config |= 1 << SH_MEM_CONFIG__RETRY_DISABLE__SHIFT;
- qpd->vm_cntx_cntl &=
+ xnack_enabled = KFD_SUPPORT_XNACK_PER_PROCESS(dqm->dev) ?
+ pdd->process->xnack_enabled :
+ !pdd->dev->kfd->noretry;
+
+ if (!xnack_enabled) {
+ qpd->sh_mem_config |= 1 << SH_MEM_CONFIG__RETRY_DISABLE__SHIFT;
+ qpd->vm_cntx_cntl &=
~(1 << GCVM_CONTEXT0_CNTL__RETRY_PERMISSION_OR_INVALID_PAGE_FAULT__SHIFT);
- } else {
- qpd->sh_mem_config &= ~(1 << SH_MEM_CONFIG__RETRY_DISABLE__SHIFT);
- qpd->vm_cntx_cntl |=
+ } else {
+ qpd->sh_mem_config &= ~(1 << SH_MEM_CONFIG__RETRY_DISABLE__SHIFT);
+ qpd->vm_cntx_cntl |=
(1 << GCVM_CONTEXT0_CNTL__RETRY_PERMISSION_OR_INVALID_PAGE_FAULT__SHIFT);
- }
}
qpd->sh_mem_bases = compute_sh_mem_bases_64bit(pdd);
((KFD_GC_VERSION(dev) == IP_VERSION(9, 4, 2)) || \
(KFD_GC_VERSION(dev) == IP_VERSION(9, 4, 3)) || \
(KFD_GC_VERSION(dev) == IP_VERSION(9, 4, 4)) || \
- (KFD_GC_VERSION(dev) == IP_VERSION(9, 5, 0)) || \
- (KFD_GC_VERSION(dev) == IP_VERSION(12, 1, 0)))
+ (KFD_GC_VERSION(dev) == IP_VERSION(9, 5, 0)))
struct kfd_node;