[Intel-gfx] [PATCH 01/23] drm/i915: Move aliasing_ppgtt underneath its i915_ggtt

Tvrtko Ursulin tvrtko.ursulin at linux.intel.com
Wed Jul 24 09:54:16 UTC 2019


On 24/07/2019 10:47, Chris Wilson wrote:
> Quoting Chris Wilson (2019-07-24 10:37:19)
>> Quoting Chris Wilson (2019-07-24 10:27:38)
>>> Quoting Tvrtko Ursulin (2019-07-24 09:56:34)
>>>>
>>>> On 23/07/2019 19:38, Chris Wilson wrote:
>>>>> +static int __context_pin_ppgtt(struct intel_context *ce)
>>>>>    {
>>>>>        struct i915_address_space *vm;
>>>>>        int err = 0;
>>>>>    
>>>>> -     vm = ctx->vm ?: &ctx->i915->mm.aliasing_ppgtt->vm;
>>>>> +     vm = vm_alias(ce);
>>>>>        if (vm)
>>>>
>>>> Can't return NULL it seems. (Same below.)
>>>
>>> Are you so sure?
>>>
>>> ce->gem_context->vm is only !NULL if there is a full-ppgtt
>>> &ggtt->alias->vm is only !NULL if there is an aliasing-ppgtt
>>>
>>> There may be contexts with neither (gen4, gen5).
>>
>> It's not until the next patch where we always set ce->vm will it be
>> non-NULL. Point taken.
> 
> Except, we purposely replace the i915_ggtt ce->vm with its alias, which
> may still be NULL. (Which is fine as that is perma-pinned and we don't
> need to fiddle.)

I saw address of and though "it can't be NULL", but forgot about tricks 
with member at offset zero.. nvm.. Drop a comment if you feel like it. 
At least it is now consolidated so there is a place.

Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin at intel.com>

Regards,

Tvrtko


More information about the Intel-gfx mailing list