Commit df99f6d1 authored by Christian König's avatar Christian König Committed by Alex Deucher
Browse files

drm/amdgpu: re-order and document VM code



Re-order fields in the VM structure and try to improve the
documentation a bit.

Signed-off-by: default avatarChristian König <christian.koenig@amd.com>
Reviewed-by: default avatarSunil Khatri <sunil.khatri@amd.com>
Reviewed-by: default avatarAlex Deucher <alexander.deucher@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent 930595df
Loading
Loading
Loading
Loading
+24 −6
Original line number Diff line number Diff line
@@ -349,12 +349,16 @@ struct amdgpu_vm {
	/* Memory statistics for this vm, protected by status_lock */
	struct amdgpu_mem_stats stats[__AMDGPU_PL_NUM];

	/*
	 * The following lists contain amdgpu_vm_bo_base objects for either
	 * PDs, PTs or per VM BOs. The state transits are:
	 *
	 * evicted -> relocated (PDs, PTs) or moved (per VM BOs) -> idle
	 */

	/* Per-VM and PT BOs who needs a validation */
	struct list_head	evicted;

	/* BOs for user mode queues that need a validation */
	struct list_head	evicted_user;

	/* PT BOs which relocated and their parent need an update */
	struct list_head	relocated;

@@ -364,15 +368,29 @@ struct amdgpu_vm {
	/* All BOs of this VM not currently in the state machine */
	struct list_head	idle;

	/*
	 * The following lists contain amdgpu_vm_bo_base objects for BOs which
	 * have their own dma_resv object and not depend on the root PD. Their
	 * state transits are:
	 *
	 * evicted_user or invalidated -> done
	 */

	/* BOs for user mode queues that need a validation */
	struct list_head	evicted_user;

	/* regular invalidated BOs, but not yet updated in the PT */
	struct list_head	invalidated;

	/* BO mappings freed, but not yet updated in the PT */
	struct list_head	freed;

	/* BOs which are invalidated, has been updated in the PTs */
	struct list_head        done;

	/*
	 * This list contains amdgpu_bo_va_mapping objects which have been freed
	 * but not updated in the PTs
	 */
	struct list_head	freed;

	/* contains the page directory */
	struct amdgpu_vm_bo_base     root;
	struct dma_fence	*last_update;