Revision adf27835a583470707debc55554b638dd85cb8a9 authored by Chris Wilson on 21 July 2017, 14:50:36 UTC, committed by Daniel Vetter on 27 July 2017, 20:07:24 UTC
I was being overly paranoid in not updating the execobject.offset after performing the fallback copy where we set reloc.presumed_offset to -1. The thinking was to ensure that a subsequent NORELOC execbuf would be forced to process the invalid relocations. However this is overkill so long as we *only* update the execobject.offset following a successful update of the relocation value witin the batch. If we have to repeat the execbuf due to a later interruption, then we may skip the relocations on the second pass (honouring NORELOC) since the execobject.offset match the actual offsets (even though reloc.presumed_offset is garbage). Subsequent calls to execbuf with NORELOC should themselves ensure that the reloc.presumed_offset have been corrected in case of future migration. Reporting back the actual execobject.offset, even when reloc.presumed_offset is garbage, ensures that reuse of those objects use the latest information to avoid relocations. Fixes: 2889caa92321 ("drm/i915: Eliminate lots of iterations over the execobjects array") Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=101635 Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com> Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com> Link: https://patchwork.freedesktop.org/patch/msgid/20170721145037.25105-4-chris@chris-wilson.co.uk Reviewed-by: Joonas Lahtinen <joonas.lahtinen@linux.intel.com> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> (cherry picked from commit 1f727d9e725a408ef58d159c20fb2e51818ff153) Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
1 parent bed8d1c
File | Mode | Size |
---|---|---|
oss | ||
seq | ||
Kconfig | -rw-r--r-- | 4.7 KB |
Makefile | -rw-r--r-- | 1.5 KB |
compress_offload.c | -rw-r--r-- | 29.8 KB |
control.c | -rw-r--r-- | 49.7 KB |
control_compat.c | -rw-r--r-- | 13.1 KB |
ctljack.c | -rw-r--r-- | 2.2 KB |
device.c | -rw-r--r-- | 6.3 KB |
hrtimer.c | -rw-r--r-- | 4.2 KB |
hwdep.c | -rw-r--r-- | 13.2 KB |
hwdep_compat.c | -rw-r--r-- | 2.3 KB |
info.c | -rw-r--r-- | 19.6 KB |
info_oss.c | -rw-r--r-- | 3.5 KB |
init.c | -rw-r--r-- | 25.9 KB |
isadma.c | -rw-r--r-- | 3.0 KB |
jack.c | -rw-r--r-- | 9.9 KB |
memalloc.c | -rw-r--r-- | 7.5 KB |
memory.c | -rw-r--r-- | 2.5 KB |
misc.c | -rw-r--r-- | 4.1 KB |
pcm.c | -rw-r--r-- | 34.6 KB |
pcm_compat.c | -rw-r--r-- | 21.7 KB |
pcm_dmaengine.c | -rw-r--r-- | 11.6 KB |
pcm_drm_eld.c | -rw-r--r-- | 2.4 KB |
pcm_iec958.c | -rw-r--r-- | 3.2 KB |
pcm_lib.c | -rw-r--r-- | 67.4 KB |
pcm_local.h | -rw-r--r-- | 2.0 KB |
pcm_memory.c | -rw-r--r-- | 13.5 KB |
pcm_misc.c | -rw-r--r-- | 15.6 KB |
pcm_native.c | -rw-r--r-- | 104.9 KB |
pcm_param_trace.h | -rw-r--r-- | 4.5 KB |
pcm_timer.c | -rw-r--r-- | 3.7 KB |
pcm_trace.h | -rw-r--r-- | 4.9 KB |
rawmidi.c | -rw-r--r-- | 49.2 KB |
rawmidi_compat.c | -rw-r--r-- | 4.8 KB |
seq_device.c | -rw-r--r-- | 7.6 KB |
sgbuf.c | -rw-r--r-- | 4.2 KB |
sound.c | -rw-r--r-- | 10.5 KB |
sound_oss.c | -rw-r--r-- | 7.1 KB |
timer.c | -rw-r--r-- | 53.5 KB |
timer_compat.c | -rw-r--r-- | 4.9 KB |
vmaster.c | -rw-r--r-- | 12.7 KB |
![swh spinner](/static/img/swh-spinner.gif)
Computing file changes ...