Commit 8e320f67 authored by Shane Xiao's avatar Shane Xiao Committed by Alex Deucher
Browse files

drm/amdgpu: Add debug bit for userptr usage



In VM debug mode, it is desirable to notify the application
to correct the freeing sequence by unmapping the memory before
destroying the userptr in the old userptr path. Add a bitmask
to decide whether to send gpu vm fault to the applition.

Signed-off-by: default avatarShane Xiao <shane.xiao@amd.com>
Reviewed-by: default avatarChristian König <christian.koenig@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent def41146
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -1281,6 +1281,7 @@ struct amdgpu_device {
	bool                            debug_enable_ras_aca;
	bool                            debug_exp_resets;
	bool                            debug_disable_gpu_ring_reset;
	bool                            debug_vm_userptr;

	/* Protection for the following isolation structure */
	struct mutex                    enforce_isolation_mutex;
+5 −0
Original line number Diff line number Diff line
@@ -143,6 +143,7 @@ enum AMDGPU_DEBUG_MASK {
	AMDGPU_DEBUG_ENABLE_EXP_RESETS = BIT(5),
	AMDGPU_DEBUG_DISABLE_GPU_RING_RESET = BIT(6),
	AMDGPU_DEBUG_SMU_POOL = BIT(7),
	AMDGPU_DEBUG_VM_USERPTR = BIT(8),
};

unsigned int amdgpu_vram_limit = UINT_MAX;
@@ -2273,6 +2274,10 @@ static void amdgpu_init_debug_options(struct amdgpu_device *adev)
		pr_info("debug: use vram for smu pool\n");
		adev->pm.smu_debug_mask |= SMU_DEBUG_POOL_USE_VRAM;
	}
	if (amdgpu_debug_mask & AMDGPU_DEBUG_VM_USERPTR) {
		pr_info("debug: VM mode debug for userptr is enabled\n");
		adev->debug_vm_userptr = true;
	}
}

static unsigned long amdgpu_fix_asic_type(struct pci_dev *pdev, unsigned long flags)