Re: [PATCH 0/5] drm/v3d: Enable Super Pages

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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
> 
> 





[Index of Archives]     [Linux DRI Users]     [Linux Intel Graphics]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux