[Intel-gfx] [PATCH v3 3/8] drm/i915: Add a new "remapped" gtt_view

Tvrtko Ursulin tvrtko.ursulin at linux.intel.com
Mon Oct 1 15:48:21 UTC 2018


On 01/10/2018 16:37, Chris Wilson wrote:
> Quoting Ville Syrjälä (2018-10-01 16:27:43)
>> On Mon, Oct 01, 2018 at 04:12:09PM +0100, Chris Wilson wrote:
>>> Quoting Ville Syrjälä (2018-10-01 16:03:30)
>>>> On Wed, Sep 26, 2018 at 08:50:25AM +0100, Tvrtko Ursulin wrote:
>>>>>
>>>>> On 25/09/2018 20:37, Ville Syrjala wrote:
>>>>> One more thing, do you really need random access for this
>>>>> transformation? Or you could walk the sg list as it is? Just if you hit
>>>>> a too long chunk you need to copy a trimmed version over and know where
>>>>> to continue for the next row. If doable it would be better than having
>>>>> to kvmalloc_array.
>>>>
>>>> I think Chris suggested just using i915_gem_object_get_dma_address()
>>>> here. But I'm not sure why we're not using it for rotate_pages()
>>>> as well.
>>>
>>> Tvrtko is opposed to populating the obj->mm.pages cache with no defined
>>> release point. I say the mempressure and shrinker should to the right
>>> thing, but it's a big if.
>>
>> OK.
>>
>> Well, looks to me like i915_gem_object_get_dma_address() is the
>> only convenient looking thing for iterating the pages without
>> arowning the code in irrelevant details about sgs and whatnot.
>> I suppose it should be possible to write some helpers that avoid
>> all that and don't need the temp array, but I'm not really
>> motivated enough to do that myself.
> 
> Keep it simple and use get_dma_address(). We can find ways to throw away
> the cache later if need be.

I'd do it straight away. I think cache for a large framebuffer, the kind 
which needs remapping could be quite big! Even the more fragmented 
memory the bigger the cache, and so if it sticks around pointlessly for 
the lifetime of the framebuffer it is a double whammy.

Regards,

Tvrtko


More information about the Intel-gfx mailing list