On 14/11/2025 18:11, Boris Brezillon wrote:
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));
?
Oops, I overlooked that one.
if (IS_ERR(shmem_obj))
return ERR_CAST(shmem_obj);
bo = to_v3d_bo(&shmem_obj->base);