• Tvrtko Ursulin's avatar
    drm/i915: Do not lie about atomic timeout granularity · 0351b939
    Tvrtko Ursulin authored
    Currently the wait_for_atomic_us only allows for a jiffie
    timeout granularity which is not nice towards callers
    requesting small micro-second timeouts.
    
    Re-implement it so micro-second timeout granularity is really
    supported and not just in the name of the macro.
    
    This has another beneficial side effect that it improves
    "gem_latency -n 100" results by approximately 2.5% (throughput
    and latencies) and 3% (CPU usage). (Note this improvement is
    relative to not yet merged execlist lock uncontention patch
    which moves the CSB MMIO outside this lock.)
    
    It also shrinks some hot functions like fw_domains_get by a
    tiny 3%.
    
    v2:
      * Warn when used from non-atomic context (if possible).
      * Warn on too long atomic waits.
    
    v3:
      * Added comment explaining CONFIG_PREEMPT_COUNT.
      * Fixed pre-processor indentation.
      (Chris Wilson)
    
    v4:
     * Commit msg update (gem_latency) and rebase.
    
    v5:
     * Commit message re-wording.
     * Added comment about no need for double cond check. (Chris Wilson)
    Signed-off-by: default avatarTvrtko Ursulin <tvrtko.ursulin@intel.com>
    Cc: Chris Wilson <chris@chris-wilson.co.uk>
    Reviewed-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
    0351b939
intel_drv.h 55.6 KB