On Fri, May 05, 2017 at 12:33:54PM -0700, Jason Ekstrand wrote: > On Fri, May 5, 2017 at 5:09 AM, Chris Wilson <[1]ch...@chris-wilson.co.uk> > wrote: > > It is a requirement, not just of using the NO_RELOC mode, that all > relocation values in the execobjects match their reloc.presumed_offset, > as the kernel will skip performing *any* relocation if the > presumed_offset > matches the target object. As anv is setting unknown relocations to -1 > irrespective of the actual value, if the kernel placed the target at -1 > (i.e. 0xfffffffff000 for 48bit GTT), it would happily skip the > relocation. > To prevent this, we need to always do the userspace relocations to > ensure > the values match. To improve further, set the unknown object offset to 0 > (a valid location) on the offchance it is available and the migration > skipped. > > Is this a real issue? I specifically chose -1 because it *wasn't* > page-aligned. I don't think the kernel whacks off the bottom 12 bits > before doing the comparison to determine whether or not the relocation > needs to happen.
Yes. It is real. -Chris -- Chris Wilson, Intel Open Source Technology Centre _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev