1 From 53aa50017a2d7f730d4aae4bea41619d7a92bb03 Mon Sep 17 00:00:00 2001
2 From: =?UTF-8?q?Ma=C3=ADra=20Canal?= <mcanal@igalia.com>
3 Date: Mon, 23 Sep 2024 10:55:14 -0300
4 Subject: [PATCH] drm/v3d: Add modparam for turning off Big/Super Pages
6 Content-Type: text/plain; charset=UTF-8
7 Content-Transfer-Encoding: 8bit
9 Commit 0df4a13ca8bed29cbc362c99b958fbb8b27b1675 upstream
11 Add a modparam for turning off Big/Super Pages to make sure that if an
12 user doesn't want Big/Super Pages enabled, it can disabled it by setting
13 the modparam to false.
15 Signed-off-by: MaĆra Canal <mcanal@igalia.com>
16 Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@igalia.com>
17 Link: https://patchwork.freedesktop.org/patch/msgid/20240923141348.2422499-11-mcanal@igalia.com
19 drivers/gpu/drm/v3d/v3d_drv.c | 7 +++++++
20 drivers/gpu/drm/v3d/v3d_drv.h | 1 +
21 drivers/gpu/drm/v3d/v3d_gemfs.c | 4 ++++
22 3 files changed, 12 insertions(+)
24 --- a/drivers/gpu/drm/v3d/v3d_drv.c
25 +++ b/drivers/gpu/drm/v3d/v3d_drv.c
27 #define DRIVER_MINOR 0
28 #define DRIVER_PATCHLEVEL 0
30 +/* Only expose the `super_pages` modparam if THP is enabled. */
31 +#ifdef CONFIG_TRANSPARENT_HUGEPAGE
32 +bool super_pages = true;
33 +module_param_named(super_pages, super_pages, bool, 0400);
34 +MODULE_PARM_DESC(super_pages, "Enable/Disable Super Pages support.");
37 static int v3d_get_param_ioctl(struct drm_device *dev, void *data,
38 struct drm_file *file_priv)
40 --- a/drivers/gpu/drm/v3d/v3d_drv.h
41 +++ b/drivers/gpu/drm/v3d/v3d_drv.h
42 @@ -545,6 +545,7 @@ void v3d_invalidate_caches(struct v3d_de
43 void v3d_clean_caches(struct v3d_dev *v3d);
46 +extern bool super_pages;
47 void v3d_gemfs_init(struct v3d_dev *v3d);
48 void v3d_gemfs_fini(struct v3d_dev *v3d);
50 --- a/drivers/gpu/drm/v3d/v3d_gemfs.c
51 +++ b/drivers/gpu/drm/v3d/v3d_gemfs.c
52 @@ -20,6 +20,10 @@ void v3d_gemfs_init(struct v3d_dev *v3d)
53 if (!IS_ENABLED(CONFIG_TRANSPARENT_HUGEPAGE))
56 + /* The user doesn't want to enable Super Pages */
60 type = get_fs_type("tmpfs");