Quoting Mika Kuoppala (2017-12-01 08:28:45) > Chris Wilson <chris@xxxxxxxxxxxxxxxxxx> 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 _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/intel-gfx