[Intel-gfx] [PATCH] drm/i915: Prevent negative relocation deltas from wrapping

Daniel Vetter daniel.vetter at ffwll.ch
Mon Aug 25 02:00:17 CEST 2014


On Sun, Aug 24, 2014 at 5:40 PM, Chris Wilson <chris at chris-wilson.co.uk> wrote:
> On Fri, May 23, 2014 at 08:48:08AM +0200, Daniel Vetter wrote:
>> - Apply the batch offset bias everywhere but mention that we've only
>>   observed it on gen7 gpus.
>
>> +static struct drm_i915_gem_object *
>> +eb_get_batch(struct eb_vmas *eb)
>> +{
>> +     struct i915_vma *vma = list_entry(eb->vmas.prev, typeof(*vma), exec_list);
>> +
>> +     /*
>> +      * SNA is doing fancy tricks with compressing batch buffers, which leads
>> +      * to negative relocation deltas. Usually that works out ok since the
>> +      * relocate address is still positive, except when the batch is placed
>> +      * very low in the GTT. Ensure this doesn't happen.
>> +      *
>> +      * Note that actual hangs have only been observed on gen7, but for
>> +      * paranoia do it everywhere.
>> +      */
>> +     vma->exec_entry->flags |= __EXEC_OBJECT_NEEDS_BIAS;
>
> This actually conflicts with ilk and earlier generating EBUSY when mixed
> with pinned buffers.

Hm, now I'm confused since I seem to completely lack context. With
what kind of pinned buffers does this conflict and how? Can you please
elaborate?
-Daniel
-- 
Daniel Vetter
Software Engineer, Intel Corporation
+41 (0) 79 365 57 48 - http://blog.ffwll.ch



More information about the Intel-gfx mailing list