Am Dienstag, 21. August 2012 schrieb Marcin Slusarz : > On Mon, Aug 20, 2012 at 04:33:24PM +1000, Ben Skeggs wrote: > > On Sun, Aug 19, 2012 at 11:02:00PM +0200, Marcin Slusarz wrote: > > > Commit "drm/nouveau: port all engines to new engine module format" > changed > > > IB size calculation to be less wasteful, but didn't take into account > already > > > existing off-by-one bugs :). > > > > > > So: > > > - ib_max is the last entry, so we need to +1 when calculating number of > > > free entries > > > - nv50_dma_wait already does +1 (for FIRE_RING), so we don't need > another +1 > > > on nouveau_gem_ioctl_pushbuf side > > > - there are 512 allocated IB entries (and it needs to be round > number), so we > > > can accept at most 511 entries from userspace (we need one for > FIRE_RING) - > > > fortunately userspace already flushes at 511, so nr_push check > change won't > > > have any impact > > Also skipped this patch for now as I have work in progress that will > improve this and > > related code. I should have it in the tree soon. > > Maybe I should have written this in the changelog, but this patch fixes > total > mayhem seen in warsow and nexuiz (at least). It's better to integrate it > sooner > than later.
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. I did try and reproduce on a couple of cards with warsow and wasn't able to. Also, what happened to instmem being the culprit here? Marcin >
_______________________________________________ Nouveau mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/nouveau
