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