[Intel-gfx] [PATCH] drm/i915: Fix __wait_seqno to use true infinite timeouts
Daniel Vetter
daniel at ffwll.ch
Fri Aug 23 09:27:42 CEST 2013
On Fri, Aug 23, 2013 at 3:05 AM, Chris Wilson <chris at chris-wilson.co.uk> wrote:
> Rather than continue to fix up the timeouts to work around the interface
> impedence in wait_event_*(), open code the combination of
> wait_event[_interruptible][_timeout]. And note the code size reduction,
> and dare say readability?, in doing so..
>
> v2: In order to satisfy the debug requirement of logging missed
> interrupts with the real world requirments of making machines work even
> if interrupts are hosed, we revert to polling after detecting a missed
> interrupt.
>
> Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
Yeah, I think this approach should work. A few comments:
- I think we need a debugfs file to shut the safety quirk off - when
testing on a machine where we actually miss interrupts it might be
usful to get the warning output every time.
- I'd go for a new bool dev_priv->unreliable_seqno_signalling or so to
avoid any races due to the rmw cycle you now do on dev_priv->quirks.
- I'd have opted for a faster timeout of the fake irq, but one that rearms.
Also I'd love to be able to test all this (both the missed irq
detection stuff and the fake irq) but I don't have a good idea right
now ... So I guess we need to again hope that it won't break too
quickly (since it eventually will break again).
-Daniel
--
Daniel Vetter
Software Engineer, Intel Corporation
+41 (0) 79 365 57 48 - http://blog.ffwll.ch
More information about the Intel-gfx
mailing list