From: Ville Syrjälä <ville.syrjala@xxxxxxxxxxxxxxx> Print some information on how many flips are in the queue waiting for the GPU. There's no limit on the queue length currently. Signed-off-by: Ville Syrjälä <ville.syrjala@xxxxxxxxxxxxxxx> --- drivers/gpu/drm/i915/i915_drv.h | 1 + drivers/gpu/drm/i915/intel_atomic.c | 4 ++++ 2 files changed, 5 insertions(+), 0 deletions(-) diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h index 87f5cba..5c089b2 100644 --- a/drivers/gpu/drm/i915/i915_drv.h +++ b/drivers/gpu/drm/i915/i915_drv.h @@ -892,6 +892,7 @@ typedef struct drm_i915_private { struct work_struct work; struct workqueue_struct *wq; unsigned int next_flip_seq; + unsigned int queue_len; } flip; } drm_i915_private_t; diff --git a/drivers/gpu/drm/i915/intel_atomic.c b/drivers/gpu/drm/i915/intel_atomic.c index d3aa566..d7cc978 100644 --- a/drivers/gpu/drm/i915/intel_atomic.c +++ b/drivers/gpu/drm/i915/intel_atomic.c @@ -2106,6 +2106,7 @@ static void intel_atomic_postpone_flip(struct drm_device *dev, intel_flip->busy = ring != NULL; list_move_tail(&intel_flip->base.list, &dev_priv->flip.list); + dev_priv->flip.queue_len++; if (!ring) return; @@ -2186,6 +2187,7 @@ static void intel_atomic_process_flips_work(struct work_struct *work) if (intel_flip->flip_seq != flip_seq) break; list_move_tail(&intel_flip->base.list, &flips); + dev_priv->flip.queue_len--; } } @@ -2197,6 +2199,8 @@ static void intel_atomic_process_flips_work(struct work_struct *work) mutex_lock(&dev->mode_config.mutex); intel_atomic_schedule_flips(dev_priv, intel_crtc, &flips); mutex_unlock(&dev->mode_config.mutex); + + DRM_DEBUG_KMS("flip queue length = %u\n", dev_priv->flip.queue_len); } } -- 1.7.8.6 _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/dri-devel