[PATCH 0/5] drm/v3d: Enable Super Pages
Iago Toral
itoral at igalia.com
Tue Mar 12 08:37:17 UTC 2024
Hi Maíra,
El lun, 11-03-2024 a las 07:05 -0300, Maíra Canal escribió:
> This series introduces support for super pages in V3D. The V3D MMU
> has support
> for 1MB pages, called super pages, which is currently not used.
> Therefore,
> this patchset has the intention to enable super pages in V3D. The
> advantage of
> enabling super pages size is that if any entry for a page within a
> super page
> is cached in the MMU, it will be used for translation of all virtual
> addresses
> in the range of that super pages without requiring fetching any other
> entries.
>
> Super pages essentially means a slightly better performance for
> users,
> especially in applications with high memory requirements (e.g.
> applications
> that uses multiple large BOs).
>
> Using a Raspberry Pi 4 (with a PAGE_SIZE=4KB downstream kernel), when
> running
> traces from multiple applications, we were able to see the following
> improvements:
>
> fps_avg helped:
> warzone2100.70secs.1024x768.trace: 1.81 -> 2.56
> (41.82%)
> fps_avg helped:
> warzone2100.30secs.1024x768.trace: 2.00 -> 2.39
> (19.62%)
> fps_avg helped: quake2-gl1.4-
> 1280x720.trace: 35.01 -> 36.57 (4.47%)
> fps_avg helped: supertuxkart-
> menus_1024x768.trace: 120.75 -> 125.50 (3.93%)
> fps_avg helped: quake2-gles3-
> 1280x720.trace: 62.69 -> 64.29 (2.55%)
> fps_avg helped:
> ue4_shooter_game_shooting_low_quality_640x480.gfxr: 26.13 ->
> 26.75 (2.39%)
> fps_avg helped:
> vkQuake_capture_frames_1_through_1200_1280x720.gfxr: 60.35 ->
> 61.36 (1.67%)
> fps_avg helped:
> ue4_sun_temple_640x480.gfxr: 24.60 ->
> 24.94 (1.40%)
> fps_avg helped:
> ue4_shooter_game_shooting_high_quality_640x480.gfxr: 23.07 ->
> 23.34 (1.15%)
> fps_avg helped:
> serious_sam_trace02_1280x720.gfxr: 47.44 ->
> 47.74 (0.63%)
> fps_avg helped:
> ue4_shooter_game_high_quality_640x480.gfxr: 18.91 ->
> 19.02 (0.59%)
>
> Using a Raspberry Pi 5 (with a PAGE_SIZE=16KB downstream kernel),
> when running
> traces from multiple applications, we were able to see the following
> improvements:
>
> fps_avg helped:
> warzone2100.30secs.1024x768.trace: 3.60 -> 4.49
> (24.72%)
> fps_avg helped:
> sponza_demo02_800x600.gfxr: 46.33 ->
> 49.34 (6.49%)
> fps_avg helped:
> quake3e_capture_frames_1_through_1800_1920x1080.gfxr: 155.70 ->
> 165.71 (6.43%)
> fps_avg helped: gl-117-
> 1024x768.trace: 31.82 -> 33.85
> (6.41%)
> fps_avg helped: supertuxkart-
> menus_1024x768.trace: 287.80 -> 303.80 (5.56%)
> fps_avg helped:
> ue4_shooter_game_shooting_low_quality_640x480.gfxr: 45.27 ->
> 47.30 (4.49%)
> fps_avg helped:
> sponza_demo01_800x600.gfxr: 42.05 ->
> 43.68 (3.89%)
> fps_avg helped: supertuxkart-
> racing_1024x768.trace: 19.94 -> 20.59 (3.26%)
> fps_avg helped:
> vkQuake_capture_frames_1_through_1200_1280x720.gfxr: 135.19 ->
> 139.45 (3.15%)
> fps_avg helped: quake2-gles3-
> 1280x720.trace: 151.71 -> 156.13 (2.92%)
> fps_avg helped:
> ue4_shooter_game_high_quality_640x480.gfxr: 30.28 ->
> 31.05 (2.54%)
> fps_avg helped: rbdoom-3-
> bfg_640x480.gfxr: 31.52 -> 32.30
> (2.49%)
> fps_avg helped:
> quake3e_capture_frames_1800_through_2400_1920x1080.gfxr: 157.29 ->
> 160.35 (1.94%)
> fps_avg helped: quake3e-
> 1280x720.trace: 230.48 -> 234.51
> (1.75%)
> fps_avg helped:
> ue4_shooter_game_shooting_high_quality_640x480.gfxr: 49.67 ->
> 50.46 (1.60%)
> fps_avg helped:
> ue4_sun_temple_640x480.gfxr: 39.70 ->
> 40.23 (1.34%)
>
> This series also introduces changes in the GEM helpers, in order to
> enable V3D
> to have a separated mountpoint for shmem GEM objects. Any feedback
> from the
> community about the changes in the GEM helpers is welcomed!
>
> Best Regards,
> - Maíra
>
> Maíra Canal (5):
> drm/v3d: Fix return if scheduler initialization fails
> drm/gem: Add a mountpoint parameter to drm_gem_object_init()
> drm/v3d: Introduce gemfs
> drm/gem: Create shmem GEM object in a given mountpoint
> drm/v3d: Enable super pages
>
I reviewed the 3 v3d patches in the series, gave R-B for the first two
and made a couple of comments to the last one. For the drm/gem patches
I think you want someone more qualified to review them.
Iago
> drivers/gpu/drm/armada/armada_gem.c | 2 +-
> drivers/gpu/drm/drm_gem.c | 12 ++++-
> drivers/gpu/drm/drm_gem_dma_helper.c | 2 +-
> drivers/gpu/drm/drm_gem_shmem_helper.c | 30 +++++++++--
> drivers/gpu/drm/drm_gem_vram_helper.c | 2 +-
> drivers/gpu/drm/etnaviv/etnaviv_gem.c | 2 +-
> drivers/gpu/drm/exynos/exynos_drm_gem.c | 2 +-
> drivers/gpu/drm/gma500/gem.c | 2 +-
> drivers/gpu/drm/loongson/lsdc_ttm.c | 2 +-
> drivers/gpu/drm/mediatek/mtk_drm_gem.c | 2 +-
> drivers/gpu/drm/msm/msm_gem.c | 2 +-
> drivers/gpu/drm/nouveau/nouveau_gem.c | 2 +-
> drivers/gpu/drm/nouveau/nouveau_prime.c | 2 +-
> drivers/gpu/drm/omapdrm/omap_gem.c | 2 +-
> drivers/gpu/drm/qxl/qxl_object.c | 2 +-
> drivers/gpu/drm/rockchip/rockchip_drm_gem.c | 2 +-
> drivers/gpu/drm/tegra/gem.c | 2 +-
> drivers/gpu/drm/ttm/tests/ttm_kunit_helpers.c | 2 +-
> drivers/gpu/drm/v3d/Makefile | 3 +-
> drivers/gpu/drm/v3d/v3d_bo.c | 19 ++++++-
> drivers/gpu/drm/v3d/v3d_drv.c | 7 +++
> drivers/gpu/drm/v3d/v3d_drv.h | 15 +++++-
> drivers/gpu/drm/v3d/v3d_gem.c | 6 ++-
> drivers/gpu/drm/v3d/v3d_gemfs.c | 52
> +++++++++++++++++++
> drivers/gpu/drm/v3d/v3d_mmu.c | 24 ++++++++-
> drivers/gpu/drm/xen/xen_drm_front_gem.c | 2 +-
> include/drm/drm_gem.h | 3 +-
> include/drm/drm_gem_shmem_helper.h | 3 ++
> 28 files changed, 176 insertions(+), 32 deletions(-)
> create mode 100644 drivers/gpu/drm/v3d/v3d_gemfs.c
>
> --
> 2.43.0
>
>
More information about the dri-devel
mailing list