[Intel-gfx] [PATCH 06/26] drm/i915: Parse command buffer earlier in eb_relocate(slow)

Thomas Hellström (Intel) thomas_os at shipmail.org
Mon Jun 29 11:15:29 UTC 2020


Hi,

On 6/29/20 12:40 PM, Maarten Lankhorst wrote:
>
>>>        /*
>>>         * snb/ivb/vlv conflate the "batch in ppgtt" bit with the "non-secure
>>>         * batch" bit. Hence we need to pin secure batches into the global gtt.
>>>         * hsw should have this fixed, but bdw mucks it up again. */
>>> -    batch = eb.batch->vma;
>>>        if (eb.batch_flags & I915_DISPATCH_SECURE) {
>>>            struct i915_vma *vma;
>>>    @@ -2923,13 +2927,15 @@ i915_gem_do_execbuffer(struct drm_device *dev,
>>>             *   fitting due to fragmentation.
>>>             * So this is actually safe.
>>>             */
>>> -        vma = i915_gem_object_ggtt_pin(batch->obj, NULL, 0, 0, 0);
>>> +        vma = i915_gem_object_ggtt_pin(eb.batch->vma->obj, NULL, 0, 0, 0);
>>>            if (IS_ERR(vma)) {
>>>                err = PTR_ERR(vma);
>>>                goto err_parse;
>>>            }
>>>              batch = vma;
>>> +    } else {
>>> +        batch = eb.batch->vma;
>>>        }
>>>    
>> Hmm, it's late friday afternoon so that might be the cause, but I fail to see what the above hunk is trying to achieve?
>
> Execbuf parsing may create a shadow object which also needs to be locked, we do this inside eb_relocate() to ensure the normal rules for w/w handling can be used for eb parsing as well. :)
>
> ~Maarten

I meant the changed assignment of the batch variable?

/Thomas




More information about the Intel-gfx mailing list