✓ CI.checkpatch: success for Support active context utilization (rev4)

Patchwork patchwork at emeril.freedesktop.org
Fri May 9 16:17:56 UTC 2025


== Series Details ==

Series: Support active context utilization (rev4)
URL   : https://patchwork.freedesktop.org/series/148302/
State : success

== Summary ==

+ KERNEL=/kernel
+ git clone https://gitlab.freedesktop.org/drm/maintainer-tools mt
Cloning into 'mt'...
warning: redirecting to https://gitlab.freedesktop.org/drm/maintainer-tools.git/
+ git -C mt rev-list -n1 origin/master
202708c00696422fd217223bb679a353a5936e23
+ cd /kernel
+ git config --global --add safe.directory /kernel
+ git log -n1
commit 515e232a131da8eabc74df3a4b5de4cc4e9bf682
Author: Umesh Nerlige Ramappa <umesh.nerlige.ramappa at intel.com>
Date:   Fri May 9 09:12:03 2025 -0700

    drm/xe: Add WA BB to capture active context utilization
    
    Context Timestamp (CTX_TIMESTAMP) in the LRC accumulates the run ticks
    of the context, but only gets updated when the context switches out. In
    order to check how long a context has been active before it switches
    out, two things are required:
    
    (1) Determine if the context is running:
    
    To do so, we program the WA BB to set an initial value for CTX_TIMESTAMP
    in the LRC. The value chosen is 1 since 0 is the initial value when the
    LRC is initialized. During a query, we just check for this value to
    determine if the context is active. If the context switched out, it
    would overwrite this location with the actual CTX_TIMESTAMP MMIO value.
    Note that WA BB runs as the last part of the context restore, so reusing
    this LRC location will not clobber anything.
    
    (2) Calculate the time that the context has been active for:
    
    The CTX_TIMESTAMP ticks only when the context is active. If a context is
    active, we just use the CTX_TIMESTAMP MMIO as the new value of
    utilization. While doing so, we need to read the CTX_TIMESTAMP MMIO
    for the specific engine instance. Since we do not know which instance
    the context is running on until it is scheduled, we also read the
    ENGINE_ID MMIO in the WA BB and store it in the PPHSWP.
    
    Using the above 2 instructions in a WA BB, capture active context
    utilization.
    
    v2: (Matt Brost)
    - This breaks TDR, fix it by saving the CTX_TIMESTAMP register
      "drm/xe: Save CTX_TIMESTAMP mmio value instead of LRC value"
    - Drop tile from LRC if using gt
      "drm/xe: Save the gt pointer in LRC and drop the tile"
    
    v3:
    - Remove helpers for bb_per_ctx_ptr (Matt)
    - Add define for context active value (Matt)
    - Use 64 bit CTX TIMESTAMP for platforms that support it. For platforms
      that don't, live with the rare race. (Matt, Lucas)
    - Convert engine id to hwe and get the MMIO value (Lucas)
    - Correct commit message on when WA BB runs (Lucas)
    
    v4:
    - s/GRAPHICS_VER(...)/xe->info.has_64bit_timestamp/ (Matt)
    - Drop support for active utilization on a VF (CI failure)
    - In xe_lrc_init ensure the lrc value is 0 to begin with (CI regression)
    
    v5:
    - Minor checkpatch fix
    - Squash into previous commit and make TDR use 32-bit time
    - Update code comment to match commit msg
    
    Closes: https://gitlab.freedesktop.org/drm/xe/kernel/-/issues/4532
    Suggested-by: Lucas De Marchi <lucas.demarchi at intel.com>
    Signed-off-by: Umesh Nerlige Ramappa <umesh.nerlige.ramappa at intel.com>
+ /mt/dim checkpatch b0db97d4270c697ade930cfefdb7aaef12cd80c9 drm-intel
cf69e03abae1 drm/xe: Save CTX_TIMESTAMP mmio value instead of LRC value
99e23bf1b38d drm/xe: Save the gt pointer in lrc and drop the tile
515e232a131d drm/xe: Add WA BB to capture active context utilization




More information about the Intel-xe mailing list