• Chris Wilson's avatar
    drm/i915: Trim NEWCLIENT boosting · 1413b2bc
    Chris Wilson authored
    Limit the NEWCLIENT boost to only give its small priority boost to fresh
    clients only that have no dependencies.
    
    The idea for using NEWCLIENT boosting, commit b16c7651 ("drm/i915:
    Priority boost for new clients"), is that short-lived streams are often
    interactive and require lower latency -- and that by executing those
    ahead of the long running hogs, the short-lived clients do little to
    interfere with the system throughput by virtue of their short-lived
    nature. However, we were only considering the client's own timeline for
    determining whether or not it was a fresh stream. This allowed for
    compositors to wake up before their vblank and bump all of its client
    streams. However, in testing with media-bench this results in chaining
    all cooperating contexts together preventing us from being able to
    reorder contexts to reduce bubbles (pipeline stalls), overall increasing
    latency, and reducing system throughput. The exact opposite of our
    intent. The compromise of applying the NEWCLIENT boost to strictly fresh
    clients (that do not wait upon anything else) should maintain the
    "real-time response under load" characteristics of FQ_CODEL, without
    locking together the long chains of dependencies across the system.
    
    References: b16c7651 ("drm/i915: Priority boost for new clients")
    Signed-off-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
    Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
    Reviewed-by: default avatarTvrtko Ursulin <tvrtko.ursulin@intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20190204150101.30759-1-chris@chris-wilson.co.uk
    1413b2bc
i915_request.c 35.1 KB