]> www.infradead.org Git - linux.git/commitdiff
drm/xe: enable lite restore
authorFei Yang <fei.yang@intel.com>
Thu, 17 Oct 2024 16:27:10 +0000 (09:27 -0700)
committerJohn Harrison <John.C.Harrison@Intel.com>
Mon, 21 Oct 2024 17:34:45 +0000 (10:34 -0700)
The lite restore is a performance improvement feature which avoids
unnecessary context switch (flush, save and restore) if the incoming
context has a ContextID matching that of the outgoing context. The
scheduling is done by the GuC firmware, so on the driver side it's
just a matter of setting corresponding GUC_CTL_FEATURE flag.
This is supposed to be enabled by default, thus the flag is set
unconditionally.

Signed-off-by: Fei Yang <fei.yang@intel.com>
Reviewed-by: John Harrison <John.C.Harrison@Intel.com>
Signed-off-by: John Harrison <John.C.Harrison@Intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20241017162710.942553-2-fei.yang@intel.com
drivers/gpu/drm/xe/xe_guc.c
drivers/gpu/drm/xe/xe_guc_fwif.h

index 76437d42b8a1ebf20d3d9c402d2435ae36c36f0c..04e50eb6e506e1c70116f52c01242798b47456e7 100644 (file)
@@ -70,7 +70,7 @@ static u32 guc_ctl_debug_flags(struct xe_guc *guc)
 
 static u32 guc_ctl_feature_flags(struct xe_guc *guc)
 {
-       u32 flags = 0;
+       u32 flags = GUC_CTL_ENABLE_LITE_RESTORE;
 
        if (!guc_to_xe(guc)->info.skip_guc_pc)
                flags |= GUC_CTL_ENABLE_SLPC;
index 01e3ab590c3aeebf2057f1499091e4fb93dd06c7..08ffe59f22fae75cd2bc87d89b8813e482a81dda 100644 (file)
@@ -105,6 +105,7 @@ struct guc_update_exec_queue_policy {
 
 #define GUC_CTL_FEATURE                        2
 #define   GUC_CTL_ENABLE_SLPC          BIT(2)
+#define   GUC_CTL_ENABLE_LITE_RESTORE  BIT(4)
 #define   GUC_CTL_DISABLE_SCHEDULER    BIT(14)
 
 #define GUC_CTL_DEBUG                  3