[Intel-gfx] [PATCH v5 09/35] drm/i915: Force MMIO flips when scheduler enabled
Jesse Barnes
jbarnes at virtuousgeek.org
Fri Feb 19 19:28:05 UTC 2016
On 02/18/2016 06:26 AM, John.C.Harrison at Intel.com wrote:
> From: John Harrison <John.C.Harrison at Intel.com>
>
> MMIO flips are the preferred mechanism now but more importantly, pipe
> based flips cause issues for the scheduler. Specifically, submitting
> work to the rings around the side of the scheduler could cause that
> work to be lost if the scheduler generates a pre-emption event on that
> ring.
>
> For: VIZ-1587
> Signed-off-by: John Harrison <John.C.Harrison at Intel.com>
> ---
> drivers/gpu/drm/i915/intel_display.c | 3 +++
> 1 file changed, 3 insertions(+)
>
> diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
> index 6e12ed7..731d20a 100644
> --- a/drivers/gpu/drm/i915/intel_display.c
> +++ b/drivers/gpu/drm/i915/intel_display.c
> @@ -46,6 +46,7 @@
> #include <linux/dma_remapping.h>
> #include <linux/reservation.h>
> #include <linux/dma-buf.h>
> +#include "i915_scheduler.h"
>
> /* Primary plane formats for gen <= 3 */
> static const uint32_t i8xx_primary_formats[] = {
> @@ -11330,6 +11331,8 @@ static bool use_mmio_flip(struct intel_engine_cs *ring,
> return true;
> else if (i915.enable_execlists)
> return true;
> + else if (i915_scheduler_is_enabled(ring->dev))
> + return true;
> else if (obj->base.dma_buf &&
> !reservation_object_test_signaled_rcu(obj->base.dma_buf->resv,
> false))
>
Why can't we use mmio flips unconditionally? Maarten or Ville?
Reviewed-by: Jesse Barnes <jbarnes at virtuousgeek.org>
More information about the Intel-gfx
mailing list