[PATCH 2/5] drm/gem: Add a mountpoint parameter to drm_gem_object_init()
Tvrtko Ursulin
tvrtko.ursulin at igalia.com
Tue Mar 12 10:31:41 UTC 2024
On 12/03/2024 10:23, Christian König wrote:
> Am 12.03.24 um 10:30 schrieb Tvrtko Ursulin:
>>
>> On 12/03/2024 08:59, Christian König wrote:
>>> Am 12.03.24 um 09:51 schrieb Tvrtko Ursulin:
>>>>
>>>> Hi Maira,
>>>>
>>>> On 11/03/2024 10:05, Maíra Canal wrote:
>>>>> For some applications, such as using huge pages, we might want to
>>>>> have a
>>>>> different mountpoint, for which we pass in mount flags that better
>>>>> match
>>>>> our usecase.
>>>>>
>>>>> Therefore, add a new parameter to drm_gem_object_init() that allow
>>>>> us to
>>>>> define the tmpfs mountpoint where the GEM object will be created. If
>>>>> this parameter is NULL, then we fallback to shmem_file_setup().
>>>>
>>>> One strategy for reducing churn, and so the number of drivers this
>>>> patch touches, could be to add a lower level drm_gem_object_init()
>>>> (which takes vfsmount, call it __drm_gem_object_init(), or
>>>> drm__gem_object_init_mnt(), and make drm_gem_object_init() call that
>>>> one with a NULL argument.
>>>
>>> I would even go a step further into the other direction. The shmem
>>> backed GEM object is just some special handling as far as I can see.
>>>
>>> So I would rather suggest to rename all drm_gem_* function which only
>>> deal with the shmem backed GEM object into drm_gem_shmem_*.
>>
>> That makes sense although it would be very churny. I at least would be
>> on the fence regarding the cost vs benefit.
>
> Yeah, it should clearly not be part of this patch here.
>
>>
>>> Also the explanation why a different mount point helps with something
>>> isn't very satisfying.
>>
>> Not satisfying as you think it is not detailed enough to say driver
>> wants to use huge pages for performance? Or not satisying as you
>> question why huge pages would help?
>
> That huge pages are beneficial is clear to me, but I'm missing the
> connection why a different mount point helps with using huge pages.
Ah right, same as in i915, one needs to mount a tmpfs instance passing
huge=within_size or huge=always option. Default is 'never', see man 5 tmpfs.
Regards,
Tvrtko
More information about the dri-devel
mailing list