]> www.infradead.org Git - users/hch/misc.git/commitdiff
drm/amdgpu: re-order and document VM code
authorChristian König <christian.koenig@amd.com>
Wed, 27 Aug 2025 09:45:45 +0000 (11:45 +0200)
committerAlex Deucher <alexander.deucher@amd.com>
Tue, 16 Sep 2025 21:51:48 +0000 (17:51 -0400)
Re-order fields in the VM structure and try to improve the
documentation a bit.

Signed-off-by: Christian König <christian.koenig@amd.com>
Reviewed-by: Sunil Khatri <sunil.khatri@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/amdgpu/amdgpu_vm.h

index 3409904b5c631730e2a8445b96384b0150a55902..74e61e45778e892c4e34483223bed94e48788b5d 100644 (file)
@@ -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;