drm/xe: Update comment on why d3cold is still blocked.
authorRodrigo Vivi <rodrigo.vivi@intel.com>
Wed, 26 Apr 2023 13:09:40 +0000 (09:09 -0400)
committerRodrigo Vivi <rodrigo.vivi@intel.com>
Tue, 19 Dec 2023 23:31:43 +0000 (18:31 -0500)
The main issue with buddy allocator was fixed, but then
we ended up on other issues, so we need to step back and rethink
our strategy with D3cold. So, let's update the comment with a
todo list so we don't get tempted in removing it before we are
really ready.

Cc: Matthew Auld <matthew.auld@intel.com>
Cc: Thomas Hellström <thomas.hellstrom@linux.intel.com>
Cc: Riana Tauro <riana.tauro@intel.com>
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
Reviewed-by: Matthew Auld <matthew.auld@intel.com>
drivers/gpu/drm/xe/xe_pci.c

index 5f750edce542722e342074b2008832b120d2156a..c1f2f63548d3d0ac7912c655cd033b2c0c6be010 100644 (file)
@@ -755,10 +755,15 @@ static int xe_pci_runtime_idle(struct device *dev)
        struct xe_device *xe = pdev_to_xe_device(pdev);
 
        /*
-        * FIXME: d3cold should be allowed (true) if
+        * TODO: d3cold should be allowed (true) if
         * (IS_DGFX(xe) && !xe_device_mem_access_ongoing(xe))
-        * however the change to the buddy allocator broke the
-        * xe_bo_restore_kernel when the pci device is disabled
+        * but maybe include some other conditions. So, before
+        * we can re-enable the D3cold, we need to:
+        * 1. rewrite the VRAM save / restore to avoid buffer object locks
+        * 2. block D3cold if we have a big amount of device memory in use
+        *    in order to reduce the latency.
+        * 3. at resume, detect if we really lost power and avoid memory
+        *    restoration if we were only up to d3cold
         */
         xe->d3cold_allowed = false;