Reviewed-by: Sunil Khatri <sunil.kha...@amd.com>
Rest later i will try to improve the definition of each list with more details for clarity.

On 9/11/2025 5:39 PM, Christian König wrote:
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;

Reply via email to