Re: Intel 965G: i915_dispatch_cmdbuffer failed (2.6.19-rc2)

From: Ryan Richter
Date: Tue Oct 17 2006 - 19:57:11 EST


On Wed, Oct 18, 2006 at 06:27:42AM +0800, Keith Packard wrote:
> On Tue, 2006-10-17 at 13:40 -0400, Ryan Richter wrote:
>
> > So do I want something like
> >
> >
> > static int do_validate_cmd(int cmd)
> > {
> > return 1;
> > }
> >
> > in i915_dma.c?
>
> that will certainly avoid any checks. Another alternative is to printk
> the cmd which fails validation so we can see what needs adding here.

With just the above, running a GL client (even glxinfo) locks up the
display such that it can't be recovered without a reboot. It doesn't
kill the machine, though. What looks like a 64x64 block of garbage
appears on the screen. The kernel says

[drm:i915_wait_irq] *ERROR* i915_wait_irq: EBUSY -- rec: 0 emitted: 2

If instead I change the validate_cmd function to:


static int validate_cmd(int cmd)
{
int ret = do_validate_cmd(cmd);

if(!ret)
printk("validate_cmd( %x ): %d\n", cmd, ret);

return 1;
}

I get basically the same behavior, but different output:


validate_cmd( 1e3f0003 ): 0
validate_cmd( 1e3f0003 ): 0
validate_cmd( d90003 ): 0
validate_cmd( d90003 ): 0
validate_cmd( d70003 ): 0
validate_cmd( d90003 ): 0
validate_cmd( d90003 ): 0
validate_cmd( d90003 ): 0
validate_cmd( d90003 ): 0
validate_cmd( 8d8c0003 ): 0
validate_cmd( d70003 ): 0
[drm:i915_batchbuffer] *ERROR* i915_batchbuffer called without lock held

Thanks,
-ryan
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/