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

Signed-off-by: Christian König <christian.koe...@amd.com>
---
 drivers/gpu/drm/amd/amdgpu/amdgpu_vm.h | 30 ++++++++++++++++++++------
 1 file changed, 24 insertions(+), 6 deletions(-)

diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.h 
b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.h
index 3409904b5c63..74e61e45778e 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.h
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.h
@@ -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;
-- 
2.43.0

Reply via email to