• Umesh Nerlige Ramappa's avatar
    drm/i915/pmu: Increase the live_engine_busy_stats sample period · 5979873e
    Umesh Nerlige Ramappa authored
    Irrespective of the backend for request submissions, busyness for an
    engine with an active context is calculated using:
    
    busyness = total + (current_time - context_switch_in_time)
    
    In execlists mode of operation, the context switch events are handled
    by the CPU. Context switch in/out time and current_time are captured
    in CPU time domain using ktime_get().
    
    In GuC mode of submission, context switch events are handled by GuC and
    the times in the above formula are captured in GT clock domain. This
    information is shared with the CPU through shared memory. This results
    in 2 caveats:
    
    1) The time taken between start of a batch and the time that CPU is able
    to see the context_switch_in_time in shared memory is dependent on GuC
    and memory bandwidth constraints.
    
    2) Determining current_time requires an MMIO read that can take anywhere
    between a few us to a couple ms. A reference CPU time is captured soon
    after reading the MMIO so that the caller can compare the cpu delta
    between 2 busyness samples. The issue here is that the CPU delta and the
    busyness delta can be skewed because of the time taken to read the
    register.
    
    These 2 factors affect the accuracy of the selftest -
    live_engine_busy_stats. For (1) the selftest waits until busyness stats
    are visible to the CPU. The effects of (2) are more prominent for the
    current busyness sample period of 100 us. Increase the busyness sample
    period from 100 us to 10 ms to overccome (2).
    
    v2: Fix checkpatch issues
    Signed-off-by: default avatarUmesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com>
    Reviewed-by: default avatarMatthew Brost <matthew.brost@intel.com>
    Signed-off-by: default avatarJohn Harrison <John.C.Harrison@Intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20211115221640.30793-1-umesh.nerlige.ramappa@intel.com
    5979873e
selftest_engine_pm.c 9.73 KB