Re: [Intel-gfx] [PATCH] drm/i915: Synchronize hpd work in i915_hpd_storm_ctl_show()

2018-11-21 Thread Daniel Vetter
On Tue, Nov 20, 2018 at 07:37:17PM -0500, Lyude Paul wrote:
> While trying to add a chamelium test for short HPD IRQs, I ran into
> issues where a hotplug storm would be triggered, but the point at which
> it would be reported by the kernel would be after igt actually finished
> checking i915_hpd_storm_ctl's status. So, fix this by simply
> synchronizing our IRQ work, dig_port_work, and hotplug_work before
> printing out the HPD storm status in i915_hpd_storm_ctl_show().
> 
> Signed-off-by: Lyude Paul 
> Cc: Ville Syrjälä 

Makes sense.

Reviewed-by: Daniel Vetter 

> ---
>  drivers/gpu/drm/i915/i915_debugfs.c | 7 +++
>  1 file changed, 7 insertions(+)
> 
> diff --git a/drivers/gpu/drm/i915/i915_debugfs.c 
> b/drivers/gpu/drm/i915/i915_debugfs.c
> index 69447c68b9af..af4268a6d2d9 100644
> --- a/drivers/gpu/drm/i915/i915_debugfs.c
> +++ b/drivers/gpu/drm/i915/i915_debugfs.c
> @@ -4592,6 +4592,13 @@ static int i915_hpd_storm_ctl_show(struct seq_file *m, 
> void *data)
>   struct drm_i915_private *dev_priv = m->private;
>   struct i915_hotplug *hotplug = _priv->hotplug;
>  
> + /* Synchronize with everything first in case there's been an HPD
> +  * storm, but we haven't finished handling it in the kernel yet
> +  */
> + synchronize_irq(dev_priv->drm.irq);
> + flush_work(_priv->hotplug.dig_port_work);
> + flush_work(_priv->hotplug.hotplug_work);
> +
>   seq_printf(m, "Threshold: %d\n", hotplug->hpd_storm_threshold);
>   seq_printf(m, "Detected: %s\n",
>  yesno(delayed_work_pending(>reenable_work)));
> -- 
> 2.19.1
> 
> ___
> dri-devel mailing list
> dri-de...@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/dri-devel

-- 
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] [PATCH] drm/i915: Synchronize hpd work in i915_hpd_storm_ctl_show()

2018-11-20 Thread Lyude Paul
While trying to add a chamelium test for short HPD IRQs, I ran into
issues where a hotplug storm would be triggered, but the point at which
it would be reported by the kernel would be after igt actually finished
checking i915_hpd_storm_ctl's status. So, fix this by simply
synchronizing our IRQ work, dig_port_work, and hotplug_work before
printing out the HPD storm status in i915_hpd_storm_ctl_show().

Signed-off-by: Lyude Paul 
Cc: Ville Syrjälä 
---
 drivers/gpu/drm/i915/i915_debugfs.c | 7 +++
 1 file changed, 7 insertions(+)

diff --git a/drivers/gpu/drm/i915/i915_debugfs.c 
b/drivers/gpu/drm/i915/i915_debugfs.c
index 69447c68b9af..af4268a6d2d9 100644
--- a/drivers/gpu/drm/i915/i915_debugfs.c
+++ b/drivers/gpu/drm/i915/i915_debugfs.c
@@ -4592,6 +4592,13 @@ static int i915_hpd_storm_ctl_show(struct seq_file *m, 
void *data)
struct drm_i915_private *dev_priv = m->private;
struct i915_hotplug *hotplug = _priv->hotplug;
 
+   /* Synchronize with everything first in case there's been an HPD
+* storm, but we haven't finished handling it in the kernel yet
+*/
+   synchronize_irq(dev_priv->drm.irq);
+   flush_work(_priv->hotplug.dig_port_work);
+   flush_work(_priv->hotplug.hotplug_work);
+
seq_printf(m, "Threshold: %d\n", hotplug->hpd_storm_threshold);
seq_printf(m, "Detected: %s\n",
   yesno(delayed_work_pending(>reenable_work)));
-- 
2.19.1

___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx