Am Dienstag, 21. August 2012 schrieb Marcin Slusarz :<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">On Mon, Aug 20, 2012 at 04:33:24PM +1000, Ben Skeggs wrote:<br>

> On Sun, Aug 19, 2012 at 11:02:00PM +0200, Marcin Slusarz wrote:<br>
> > Commit "drm/nouveau: port all engines to new engine module format" changed<br>
> > IB size calculation to be less wasteful, but didn't take into account already<br>
> > existing off-by-one bugs :).<br>
> ><br>
> > So:<br>
> > - ib_max is the last entry, so we need to +1 when calculating number of<br>
> >   free entries<br>
> > - nv50_dma_wait already does +1 (for FIRE_RING), so we don't need another +1<br>
> >   on nouveau_gem_ioctl_pushbuf side<br>
> > - there are 512 allocated IB entries (and it needs to be round number), so we<br>
> >   can accept at most 511 entries from userspace (we need one for FIRE_RING) -<br>
> >   fortunately userspace already flushes at 511, so nr_push check change won't<br>
> >   have any impact<br>
> Also skipped this patch for now as I have work in progress that will improve this and<br>
> related code.  I should have it in the tree soon.<br>
<br>
Maybe I should have written this in the changelog, but this patch fixes total<br>
mayhem seen in warsow and nexuiz (at least). It's better to integrate it sooner<br>
than later.</blockquote><div>I presume bumping the IB size to 8KiB also helps? I prefer this in the meantime, and it's probably best to do anyway, I didn't take into account what we allow userspace to do in one shot.  If this works too, i'll push that change this morning.<span></span></div>
<div><br></div><div>I did try and reproduce on a couple of cards with warsow and wasn't able to.</div><div><br></div><div>Also, what happened to instmem being the culprit here?</div><div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Marcin<br>
</blockquote>