• Vinay Belgaumkar's avatar
    drm/i915/guc/slpc: Allow SLPC to use efficient frequency · 95ccf312
    Vinay Belgaumkar authored
    Host Turbo operates at efficient frequency when GT is not idle unless
    the user or workload has forced it to a higher level. Replicate the same
    behavior in SLPC by allowing the algorithm to use efficient frequency.
    We had disabled it during boot due to concerns that it might break
    kernel ABI for min frequency. However, this is not the case since
    SLPC will still abide by the (min,max) range limits.
    
    With this change, min freq will be at efficient frequency level at init
    instead of fused min (RPn). If user chooses to reduce min freq below the
    efficient freq, we will turn off usage of efficient frequency and honor
    the user request. When a higher value is written, it will get toggled
    back again.
    
    The patch also corrects the register which needs to be read for obtaining
    the correct efficient frequency for Gen9+.
    
    We see much better perf numbers with benchmarks like glmark2 with
    efficient frequency usage enabled as expected.
    
    v2: Address review comments (Rodrigo)
    v3: with efficient frequency being dynamic, it is possible that the req
    frequency may go beyond max freq. This will cause SLPC selftests to fail.
    Add a FIXME there to start the test with [RPn, RP0] instead and restore
    it afterwards.
    
    BugLink: https://gitlab.freedesktop.org/drm/intel/-/issues/5468
    
    Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
    Signed-off-by: default avatarVinay Belgaumkar <vinay.belgaumkar@intel.com>
    Signed-off-by: default avatarRodrigo Vivi <rodrigo.vivi@intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20220820010832.15350-1-vinay.belgaumkar@intel.com
    95ccf312
intel_rps.c 61.7 KB