• Chris Wilson's avatar
    drm/i915: Allow normal clients to always preempt idle priority clients · 3d7a64b9
    Chris Wilson authored
    When first enabling preemption, we hesitated from making it a free-for-all
    where every higher priority client would force a preempt-to-idle cycle
    and take over from all lower priority clients. We hesitated because we
    were uncertain just how well preemption would work in practice, whether
    the preemption latency itself would detract from the latency gains for
    higher priority tasks and whether it would work at all. Since
    introducing preemption, we have been enabling it for more common tasks,
    even giving normal clients a small preemptive boost when they first
    start (to aide fairness and improve interactivity). Now lets take one
    step further and give permission for all normal (priority:0) clients to
    preempt any idle (priority:<0) task so that users running long compute
    jobs do not overly impact other jobs (i.e. their desktop) and the system
    remains responsive under such idle loads.
    
    References: f6322edd ("drm/i915/preemption: Allow preemption between submission ports")
    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>
    Cc: Michal Wajdeczko <michal.wajdeczko@intel.com>
    Cc: Michał Winiarski <michal.winiarski@intel.com>
    Cc: "Bloomfield, Jon" <jon.bloomfield@intel.com>
    Cc: "Stead, Alan" <alan.stead@intel.com>
    Reviewed-by: default avatarDaniele Ceraolo Spurio <daniele.ceraolospurio@intel.com>
    Reviewed-by: default avatarTvrtko Ursulin <tvrtko.ursulin@intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20190204084116.3013-1-chris@chris-wilson.co.uk
    3d7a64b9
intel_ringbuffer.h 31.6 KB