All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/6] drm/i915: Avoid stuck page flip waiters on GPU reset
@ 2013-01-29 16:13 ville.syrjala
  2013-01-29 16:13 ` [PATCH 1/6] drm/i915: Kill obj->pending_flip ville.syrjala
                   ` (6 more replies)
  0 siblings, 7 replies; 28+ messages in thread
From: ville.syrjala @ 2013-01-29 16:13 UTC (permalink / raw)
  To: intel-gfx

Someone mentioned on irc that intel_crtc_wait_for_pending_flips() was
getting stuck in some cases. This rang a bell since I was poking around
that stuff last year.

The issue that I'm trying to fix here is processes getting stuck in D
state when a GPU reset happens while page flips have been scheduled.

Testing is easy 1) fire up 'glxgears -fullscreen', run 'gem_hang 0',
try to VT switch. Without this series X and some kworker soon get stuck
in D state and you're left with a useless box. With the patch set, you
wait a while, the GPU hangcheck kicks in, and you get your console back.

The irc discussion was apparently about [1], but since the dmesg there 
doesn't show a GPU hang, I don't see this patch set fixing it. Frankly,
I have no idea what's happening there.

Additional work after this would involve sending out pending page flip
events. Currently if you don't do the VT switch after a hang, glxgears
remains stuck because the X server didn't get the page flip event from
the kernel. Also we should probably do an explicit intel_pipe_set_base()
with the current fb, to make sure we show the correct fb after the hang.
But I'm not going to touch these right now. Actually I'm hoping someone
else will volunteer for these tasks ;)

[1] https://bugs.launchpad.net/ubuntu/+source/xserver-xorg-video-intel/+bug/1097315

^ permalink raw reply	[flat|nested] 28+ messages in thread

end of thread, other threads:[~2013-02-13 17:39 UTC | newest]

Thread overview: 28+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-01-29 16:13 [PATCH 0/6] drm/i915: Avoid stuck page flip waiters on GPU reset ville.syrjala
2013-01-29 16:13 ` [PATCH 1/6] drm/i915: Kill obj->pending_flip ville.syrjala
2013-02-13 10:16   ` Damien Lespiau
2013-02-13 16:13     ` Daniel Vetter
2013-01-29 16:13 ` [PATCH 2/6] drm/i915: Don't wait for page flips if there was GPU reset ville.syrjala
2013-02-13 10:23   ` Damien Lespiau
2013-02-13 10:51     ` Ville Syrjälä
2013-02-13 11:49       ` Daniel Vetter
2013-02-13 15:23   ` Daniel Vetter
2013-02-13 16:52     ` Ville Syrjälä
2013-02-13 17:09       ` Daniel Vetter
2013-01-29 16:13 ` [PATCH 3/6] drm/i915: Wake up pending_flip_queue as part of reset handling ville.syrjala
2013-02-13 10:24   ` Damien Lespiau
2013-02-13 15:31   ` Daniel Vetter
2013-01-29 16:13 ` [PATCH 4/6] drm/i915: Move intel_crtc_has_pending_flip() earlier ville.syrjala
2013-02-13 10:27   ` Damien Lespiau
2013-01-29 16:13 ` [PATCH 5/6] drm/i915: Add intel_crtc_wait_for_pending_flips_locked() ville.syrjala
2013-02-13 10:37   ` Damien Lespiau
2013-01-29 16:13 ` [PATCH 6/6] drm/i915: Really wait for pending flips in intel_pipe_set_base() ville.syrjala
2013-02-13 10:40   ` Damien Lespiau
2013-02-13 15:49   ` Daniel Vetter
2013-02-13 17:06     ` Ville Syrjälä
2013-02-13 17:11       ` Daniel Vetter
2013-02-13 17:26         ` Ville Syrjälä
2013-02-13 17:31           ` Daniel Vetter
2013-02-13 17:39         ` Chris Wilson
2013-01-29 16:39 ` [PATCH 0/6] drm/i915: Avoid stuck page flip waiters on GPU reset Daniel Vetter
2013-01-29 16:40   ` Daniel Vetter

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.