All of lore.kernel.org
 help / color / mirror / Atom feed
* batchbuffers failing to execute
@ 2012-02-20 20:10 Eric Anholt
  2012-02-20 20:10 ` [PATCH 1/2] Try to ensure that batches emitted actually complete Eric Anholt
                   ` (2 more replies)
  0 siblings, 3 replies; 5+ messages in thread
From: Eric Anholt @ 2012-02-20 20:10 UTC (permalink / raw)
  To: intel-gfx

I think I've got a concrete test here for something I've been trying
to track down for a while now: it appears that when the GPU is too
busy, batches get dropped and sometimes the GPU hangs.

This really became clear when I was testing a patch for citybench to
"improve" the swap throttling -- a broken version that I submitted
caused no throttling to occur at all.  The app, which renders a
predefined set of frames as fast as possible, would now frequently
stutter in the middle.  The results were insanely fast (40-60%
better!).  But it didn't make sense for there to be a stutter if the
set of frames rendered is predefined.

So, I wrote this little patch series to try to test my guess that my
batches were getting dropped.  The plan is: Emit a dword write every
(render) batch, and after a while go look and see if they all landed.
Corresponding to the stutters is:

Mesa: Initializing x86-64 optimizations
batch 42 didn't report: 0xd0d0d0d0 instead of 0x0000002a
batch 43 didn't report: 0xd0d0d0d0 instead of 0x0000002b
batch 44 didn't report: 0xd0d0d0d0 instead of 0x0000002c
batch 45 didn't report: 0xd0d0d0d0 instead of 0x0000002d
batch 46 didn't report: 0xd0d0d0d0 instead of 0x0000002e
batch 47 didn't report: 0xd0d0d0d0 instead of 0x0000002f
batch 48 didn't report: 0xd0d0d0d0 instead of 0x00000030
batch 49 didn't report: 0xd0d0d0d0 instead of 0x00000031
batch 50 didn't report: 0xd0d0d0d0 instead of 0x00000032
batch 51 didn't report: 0xd0d0d0d0 instead of 0x00000033
batch 52 didn't report: 0xd0d0d0d0 instead of 0x00000034
batch 53 didn't report: 0xd0d0d0d0 instead of 0x00000035
shutting up

The cool thing is apparently I don't need citybench, either.  This
paste came from vblank_mode=0 glxgears fullscreened on my 1600x900
panel (default size doesn't reproduce the failure).

This is gen7, danvet's kernel de67cba65944f26c0f147035bd62e30c5f456b96
rebased on top of cherry-picks of the 4 ivb workaround patches.  A
revert of a71d8d94525e8fd855c0466fb586ae1cb008f3a2 doesn't help.

I've also run this on a test libdrm that returns NULL pointers on map
failure and asserts that exec and pwrite don't return errors.

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

end of thread, other threads:[~2012-02-20 21:04 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-02-20 20:10 batchbuffers failing to execute Eric Anholt
2012-02-20 20:10 ` [PATCH 1/2] Try to ensure that batches emitted actually complete Eric Anholt
2012-02-20 20:10 ` [PATCH 2/2] intel: Disable swap throttling entirely Eric Anholt
2012-02-20 20:30 ` batchbuffers failing to execute Chris Wilson
2012-02-20 21:05   ` 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.