On Fri, 14 Nov 2025 18:02:57 +0100
Loïc Molinari <[email protected]> wrote:

> Make use of the new drm_gem_huge_mnt_create() and
> drm_gem_get_huge_mnt() helpers to avoid code duplication. Now that
> it's just a few lines long, the single function in v3d_gemfs.c is
> moved into v3d_gem.c.
> 
> v3:
> - use huge tmpfs mountpoint in drm_device
> - move v3d_gemfs.c into v3d_gem.c
> 
> v4:
> - clean up mountpoint creation error handling
> 
> v5:
> - fix CONFIG_TRANSPARENT_HUGEPAGE check
> - use drm_gem_has_huge_mnt() helper
> 
> v8:
> - don't access huge_mnt field with CONFIG_TRANSPARENT_HUGEPAGE=n
> 
> v9:
> - replace drm_gem_has_huge_mnt() by drm_gem_get_huge_mnt()
> 
> Signed-off-by: Loïc Molinari <[email protected]>
> ---
>  drivers/gpu/drm/v3d/Makefile    |  3 +-
>  drivers/gpu/drm/v3d/v3d_bo.c    |  9 +++--
>  drivers/gpu/drm/v3d/v3d_drv.c   |  2 +-
>  drivers/gpu/drm/v3d/v3d_drv.h   | 11 +-----
>  drivers/gpu/drm/v3d/v3d_gem.c   | 27 ++++++++++++--
>  drivers/gpu/drm/v3d/v3d_gemfs.c | 62 ---------------------------------
>  6 files changed, 34 insertions(+), 80 deletions(-)
>  delete mode 100644 drivers/gpu/drm/v3d/v3d_gemfs.c
> 
> diff --git a/drivers/gpu/drm/v3d/Makefile b/drivers/gpu/drm/v3d/Makefile
> index fcf710926057..b7d673f1153b 100644
> --- a/drivers/gpu/drm/v3d/Makefile
> +++ b/drivers/gpu/drm/v3d/Makefile
> @@ -13,8 +13,7 @@ v3d-y := \
>       v3d_trace_points.o \
>       v3d_sched.o \
>       v3d_sysfs.o \
> -     v3d_submit.o \
> -     v3d_gemfs.o
> +     v3d_submit.o
>  
>  v3d-$(CONFIG_DEBUG_FS) += v3d_debugfs.o
>  
> diff --git a/drivers/gpu/drm/v3d/v3d_bo.c b/drivers/gpu/drm/v3d/v3d_bo.c
> index d9547f5117b9..211578abf9b6 100644
> --- a/drivers/gpu/drm/v3d/v3d_bo.c
> +++ b/drivers/gpu/drm/v3d/v3d_bo.c
> @@ -114,7 +114,7 @@ v3d_bo_create_finish(struct drm_gem_object *obj)
>       if (IS_ERR(sgt))
>               return PTR_ERR(sgt);
>  
> -     if (!v3d->gemfs)
> +     if (!drm_gem_get_huge_mnt(obj->dev))
>               align = SZ_4K;
>       else if (obj->size >= SZ_1M)
>               align = SZ_1M;
> @@ -150,12 +150,15 @@ struct v3d_bo *v3d_bo_create(struct drm_device *dev, 
> struct drm_file *file_priv,
>                            size_t unaligned_size)
>  {
>       struct drm_gem_shmem_object *shmem_obj;
> -     struct v3d_dev *v3d = to_v3d_dev(dev);
>       struct v3d_bo *bo;
>       int ret;
>  
> +#ifdef CONFIG_TRANSPARENT_HUGEPAGE
>       shmem_obj = drm_gem_shmem_create_with_mnt(dev, unaligned_size,
> -                                               v3d->gemfs);
> +                                               dev->huge_mnt);
> +#else
> +     shmem_obj = drm_gem_shmem_create(dev, unaligned_size);
> +#endif

Why not drop the ifdef and go for

        shmem_obj = drm_gem_shmem_create_with_mnt(dev,
                                                  unaligned_size,
                                                  
drm_gem_get_huge_mnt(obj->dev));

?

>       if (IS_ERR(shmem_obj))
>               return ERR_CAST(shmem_obj);
>       bo = to_v3d_bo(&shmem_obj->base);

Reply via email to