On Sat, Apr 23, 2011 at 02:48:45PM -0400, Ted Unangst wrote:
> At seemingly random times, X will get very very slow. Basically, I
> can wiggle the pointer with lag, but that's it. The screen does not
> redraw properly. I'm forced to power cycle. Afterwards, I have these
> messages in my dmesg. I don't recall this happening with cwm, but I
> switched to xfce and it happens now and then for the past few months.
> I'm now switching back to cwm, but that may not prove much. Sometimes
> it would hang twice in one day, othertimes I've gone nearly a month
> between hangs.
>
> inteldrm0: resetting gpu: done!
> inteldrm0: gpu hung!
> render error detected, EIR: 10<MPVERRLPVERR>
> IPEIR: 0x00000000
> IPEHR: 0x05000000
> INSTDONE: 0xffffffff
> INSTPS: 0x8001e120
> INSTDONE1: 0xbfffffff
> ACTHD: 0x020cdfe8
> inteldrm0: resetting gpu: done!
> inteldrm0: gpu hung!
> render error detected, EIR: 10<MPVERRLPVERR>
> IPEIR: 0x00000000
> IPEHR: 0x05000000
> INSTDONE: 0xffffffff
> INSTPS: 0x8001e120
> INSTDONE1: 0xbfffffff
> ACTHD: 0x020cdfe8
> inteldrm0: resetting gpu: done!
> inteldrm0: gpu hung!
> render error detected, EIR: 10<MPVERRLPVERR>
Hard to tell what caused the initial hang, but this diff may well help
recovery (the reset doesn't appear to be sticking), can you try this:
Index: i915_drv.c
===================================================================
RCS file: /cvs/src/sys/dev/pci/drm/i915_drv.c,v
retrieving revision 1.103
diff -u -p -r1.103 i915_drv.c
--- i915_drv.c 7 Apr 2011 15:30:16 -0000 1.103
+++ i915_drv.c 25 Apr 2011 18:40:44 -0000
@@ -5896,6 +5904,12 @@ inteldrm_965_reset(struct inteldrm_softc
{
pcireg_t reg;
int i = 0;
+
+ /*
+ * There seems to be something wrong with !full reset modes, so force
+ * the whole shebang for now
+ */
+ flags = GDRST_FULL;
if (flags == GDRST_FULL)
inteldrm_save_display(dev_priv);
--
Democracy is a form of government in which it is permitted to wonder
aloud what the country could do under first-class management.
-- Senator Soaper