[Intel-gfx] [PATCH] drm/i915: Set fake_vma.size as well as fake_vma.node.size for capture

Chris Wilson chris at chris-wilson.co.uk
Fri Dec 1 09:01:14 UTC 2017


Quoting Mika Kuoppala (2017-12-01 08:28:45)
> Chris Wilson <chris at chris-wilson.co.uk> writes:
> 
> > When capturing the bo, we allocate an array for min(vma->size,
> > vma->node.size) pages, plus a bit for compression overhead. Through my
> > and CI testing, this was sufficient for the mostly empty NULL context as
> > it compressed well (or the out-of-bounds access simply didn't cause an
> > issue). However, in real workloads on Cannonlake, we were overflowing
> > that array and causing havoc with the random memory corruption.
> >
> 
> When capturing the error object we allocate a struct for bookkeeping

We are capturing a bo, into the error object. (As opposed to when we are
capturing to just the vma.)

> plus an array for min(vma->size, vma->node.size) pages and a bit for
> compression overhead. We use this mechanism when capturing state object
> by constructing a fake vma for it. We forgot to set the vma size

We set one of the sizes used, I forgot it compared both. Ah, I see, I
missed a sentence saying what was missing, just focussed on how it went
wrong and yet survived testing. Ta,
-Chris


More information about the Intel-gfx mailing list