]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
drm/xe/xe2: Add performance tuning for L3 cache flushing
authorGustavo Sousa <gustavo.sousa@intel.com>
Fri, 20 Sep 2024 21:13:18 +0000 (18:13 -0300)
committerMatt Roper <matthew.d.roper@intel.com>
Mon, 23 Sep 2024 17:46:31 +0000 (10:46 -0700)
A recommended performance tuning for LNL related to L3 cache flushing
was recently introduced in Bspec. Implement it.

Unlike the other existing tuning settings, we limit this one for LNL
only, since there is no info about whether this would be applicable to
other platforms yet. In the future we can come back and use IP version
ranges if applicable.

v2:
  - Fix reference to Bspec. (Sai Teja, Tejas)
  - Use correct register name for "Tuning: L3 RW flush all Cache". (Sai
    Teja)
  - Use SCRATCH3_LBCF (with the underscore) for better readability.
v3:
  - Limit setting to LNL only. (Matt)

Bspec: 72161
Cc: Sai Teja Pottumuttu <sai.teja.pottumuttu@intel.com>
Cc: Tejas Upadhyay <tejas.upadhyay@intel.com>
Cc: Matt Roper <matthew.d.roper@intel.com>
Signed-off-by: Gustavo Sousa <gustavo.sousa@intel.com>
Reviewed-by: Matt Roper <matthew.d.roper@intel.com>
Reviewed-by: Tejas Upadhyay <tejas.upadhyay@intel.com>
Signed-off-by: Matt Roper <matthew.d.roper@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20240920211459.255181-5-gustavo.sousa@intel.com
drivers/gpu/drm/xe/regs/xe_gt_regs.h
drivers/gpu/drm/xe/xe_tuning.c

index 07315eb72effecb92b7d3ecf8666990c3b141078..8d8f6a113a86628596900e7f1dc22c2925c5498a 100644 (file)
 #define L3SQCREG3                              XE_REG_MCR(0xb108)
 #define   COMPPWOVERFETCHEN                    REG_BIT(28)
 
+#define SCRATCH3_LBCF                          XE_REG_MCR(0xb154)
+#define   RWFLUSHALLEN                         REG_BIT(17)
+
 #define XEHP_L3SQCREG5                         XE_REG_MCR(0xb158)
 #define   L3_PWM_TIMER_INIT_VAL_MASK           REG_GENMASK(9, 0)
 
 
 #define XE2LPM_L3SQCREG3                       XE_REG_MCR(0xb608)
 
+#define XE2LPM_SCRATCH3_LBCF                   XE_REG_MCR(0xb654)
+
 #define XE2LPM_L3SQCREG5                       XE_REG_MCR(0xb658)
 
 #define XE2_TDF_CTRL                           XE_REG(0xb418)
index 230369f108ab52f962c1ed51b2d2fac1c8dc203f..d449de0fb6ecb91e10444f06998859cde206c17f 100644 (file)
@@ -75,6 +75,14 @@ static const struct xe_rtp_entry_sr gt_tunings[] = {
          XE_RTP_ACTIONS(FIELD_SET(STATELESS_COMPRESSION_CTRL, UNIFIED_COMPRESSION_FORMAT,
                                   REG_FIELD_PREP(UNIFIED_COMPRESSION_FORMAT, 0)))
        },
+       { XE_RTP_NAME("Tuning: L3 RW flush all Cache"),
+         XE_RTP_RULES(GRAPHICS_VERSION(2004)),
+         XE_RTP_ACTIONS(SET(SCRATCH3_LBCF, RWFLUSHALLEN))
+       },
+       { XE_RTP_NAME("Tuning: L3 RW flush all cache - media"),
+         XE_RTP_RULES(MEDIA_VERSION(2000)),
+         XE_RTP_ACTIONS(SET(XE2LPM_SCRATCH3_LBCF, RWFLUSHALLEN))
+       },
 
        {}
 };