mbox series

[00/19] drm: Eliminate redundant drm_format_info lookups

Message ID 20250410163218.15130-1-ville.syrjala@linux.intel.com (mailing list archive)
Headers show
Series drm: Eliminate redundant drm_format_info lookups | expand

Message

Ville Syrjälä April 10, 2025, 4:31 p.m. UTC
From: Ville Syrjälä <ville.syrjala@linux.intel.com>

I noticed a bunch of redundant (and rather expensive) drm_format_info
lookups in some traces recently. This series is an attempt to eliminate
them.

Ville Syrjälä (19):
  drm: Pass pixel_format+modifier to .get_format_info()
  drm: Pass pixel_format+modifier directly to drm_get_format_info()
  drm: Look up the format info earlier
  drm: Pass the format info to .fb_create()
  drm: Allow the caller to pass in the format info to
    drm_helper_mode_fill_fb_struct()
  drm/malidp: Pass along the format info from .fb_create()
    malidp_verify_afbc_framebuffer_size()
  drm/gem: Pass along the format info from .fb_create() to
    drm_helper_mode_fill_fb_struct()
  drm/gem/afbc: Eliminate redundant drm_get_format_info()
  drm/amdgpu: Pass along the format info from .fb_create() to
    drm_helper_mode_fill_fb_struct()
  drm/armada: Pass along the format info from .fb_create() to
    drm_helper_mode_fill_fb_struct()
  drm/exynos: Pass along the format info from .fb_create() to
    drm_helper_mode_fill_fb_struct()
  drm/gma500: Pass along the format info from .fb_create() to
    drm_helper_mode_fill_fb_struct()
  drm/i915: Pass along the format info from .fb_create() to
    drm_helper_mode_fill_fb_struct()
  drm/komeda: Pass along the format info from .fb_create() to
    drm_helper_mode_fill_fb_struct()
  drm/msm: Pass along the format info from .fb_create() to
    drm_helper_mode_fill_fb_struct()
  drm/tegra: Pass along the format info from .fb_create() to
    drm_helper_mode_fill_fb_struct()
  drm/virtio: Pass along the format info from .fb_create() to
    drm_helper_mode_fill_fb_struct()
  drm/vmwgfx: Pass along the format info from .fb_create() to
    drm_helper_mode_fill_fb_struct()
  drm: Make passing of format info to drm_helper_mode_fill_fb_struct()
    mandatory

 drivers/gpu/drm/amd/amdgpu/amdgpu_display.c   |  6 ++-
 drivers/gpu/drm/amd/amdgpu/amdgpu_display.h   |  1 +
 .../amd/display/amdgpu_dm/amdgpu_dm_plane.c   |  4 +-
 .../amd/display/amdgpu_dm/amdgpu_dm_plane.h   |  2 +-
 .../arm/display/komeda/komeda_framebuffer.c   |  3 +-
 .../arm/display/komeda/komeda_framebuffer.h   |  1 +
 drivers/gpu/drm/arm/malidp_drv.c              | 12 +++---
 drivers/gpu/drm/armada/armada_fb.c            | 12 +++---
 drivers/gpu/drm/armada/armada_fb.h            |  4 +-
 drivers/gpu/drm/armada/armada_fbdev.c         |  5 ++-
 drivers/gpu/drm/drm_fourcc.c                  |  7 ++--
 drivers/gpu/drm/drm_framebuffer.c             | 27 ++++++-------
 drivers/gpu/drm/drm_gem_framebuffer_helper.c  | 38 ++++++++-----------
 drivers/gpu/drm/drm_modeset_helper.c          |  4 +-
 drivers/gpu/drm/exynos/exynos_drm_fb.c        |  7 ++--
 drivers/gpu/drm/exynos/exynos_drm_fb.h        |  1 +
 drivers/gpu/drm/exynos/exynos_drm_fbdev.c     |  5 ++-
 drivers/gpu/drm/gma500/fbdev.c                |  5 ++-
 drivers/gpu/drm/gma500/framebuffer.c          | 14 ++++---
 drivers/gpu/drm/gma500/psb_drv.h              |  1 +
 drivers/gpu/drm/i915/display/intel_fb.c       | 18 +++++----
 drivers/gpu/drm/i915/display/intel_fb.h       |  5 ++-
 drivers/gpu/drm/i915/display/intel_fbdev_fb.c |  6 ++-
 .../drm/i915/display/intel_plane_initial.c    |  3 +-
 drivers/gpu/drm/ingenic/ingenic-drm-drv.c     |  5 ++-
 drivers/gpu/drm/mediatek/mtk_drm_drv.c        |  5 +--
 drivers/gpu/drm/msm/msm_drv.h                 |  3 +-
 drivers/gpu/drm/msm/msm_fb.c                  | 18 +++++----
 drivers/gpu/drm/mxsfb/mxsfb_drv.c             |  9 +----
 drivers/gpu/drm/nouveau/nouveau_display.c     |  6 ++-
 drivers/gpu/drm/nouveau/nouveau_display.h     |  1 +
 drivers/gpu/drm/omapdrm/omap_fb.c             | 10 ++---
 drivers/gpu/drm/omapdrm/omap_fb.h             |  3 +-
 drivers/gpu/drm/qxl/qxl_display.c             |  3 +-
 drivers/gpu/drm/radeon/radeon_display.c       |  3 +-
 drivers/gpu/drm/radeon/radeon_fbdev.c         |  3 +-
 drivers/gpu/drm/renesas/rcar-du/rcar_du_kms.c |  3 +-
 drivers/gpu/drm/renesas/rz-du/rzg2l_du_kms.c  |  3 +-
 .../gpu/drm/renesas/shmobile/shmob_drm_kms.c  |  3 +-
 drivers/gpu/drm/rockchip/rockchip_drm_fb.c    | 11 ++----
 drivers/gpu/drm/tegra/drm.h                   |  2 +
 drivers/gpu/drm/tegra/fb.c                    |  7 ++--
 drivers/gpu/drm/tegra/fbdev.c                 |  4 +-
 drivers/gpu/drm/tests/drm_framebuffer_test.c  |  1 +
 drivers/gpu/drm/vc4/vc4_kms.c                 |  3 +-
 drivers/gpu/drm/virtio/virtgpu_display.c      |  6 ++-
 drivers/gpu/drm/vmwgfx/vmwgfx_kms.c           | 15 +++++---
 drivers/gpu/drm/vmwgfx/vmwgfx_kms.h           |  1 +
 drivers/gpu/drm/xe/display/intel_fbdev_fb.c   |  6 ++-
 drivers/gpu/drm/xe/display/xe_plane_initial.c |  2 +-
 drivers/gpu/drm/xen/xen_drm_front_kms.c       |  3 +-
 drivers/gpu/drm/xlnx/zynqmp_kms.c             |  3 +-
 include/drm/drm_fourcc.h                      |  2 +-
 include/drm/drm_gem_framebuffer_helper.h      |  6 +++
 include/drm/drm_mode_config.h                 |  3 +-
 include/drm/drm_modeset_helper.h              |  2 +
 56 files changed, 207 insertions(+), 139 deletions(-)

Comments

Thomas Zimmermann April 11, 2025, 7:30 a.m. UTC | #1
Hi,

a really nice cleanup. With the various comments fixed, you can add

Reviewed-by: Thomas Zimmermann <tzimmermann@suse.de>

to the series.

Best regards
Thomas

Am 10.04.25 um 18:31 schrieb Ville Syrjala:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
>
> I noticed a bunch of redundant (and rather expensive) drm_format_info
> lookups in some traces recently. This series is an attempt to eliminate
> them.
>
> Ville Syrjälä (19):
>    drm: Pass pixel_format+modifier to .get_format_info()
>    drm: Pass pixel_format+modifier directly to drm_get_format_info()
>    drm: Look up the format info earlier
>    drm: Pass the format info to .fb_create()
>    drm: Allow the caller to pass in the format info to
>      drm_helper_mode_fill_fb_struct()
>    drm/malidp: Pass along the format info from .fb_create()
>      malidp_verify_afbc_framebuffer_size()
>    drm/gem: Pass along the format info from .fb_create() to
>      drm_helper_mode_fill_fb_struct()
>    drm/gem/afbc: Eliminate redundant drm_get_format_info()
>    drm/amdgpu: Pass along the format info from .fb_create() to
>      drm_helper_mode_fill_fb_struct()
>    drm/armada: Pass along the format info from .fb_create() to
>      drm_helper_mode_fill_fb_struct()
>    drm/exynos: Pass along the format info from .fb_create() to
>      drm_helper_mode_fill_fb_struct()
>    drm/gma500: Pass along the format info from .fb_create() to
>      drm_helper_mode_fill_fb_struct()
>    drm/i915: Pass along the format info from .fb_create() to
>      drm_helper_mode_fill_fb_struct()
>    drm/komeda: Pass along the format info from .fb_create() to
>      drm_helper_mode_fill_fb_struct()
>    drm/msm: Pass along the format info from .fb_create() to
>      drm_helper_mode_fill_fb_struct()
>    drm/tegra: Pass along the format info from .fb_create() to
>      drm_helper_mode_fill_fb_struct()
>    drm/virtio: Pass along the format info from .fb_create() to
>      drm_helper_mode_fill_fb_struct()
>    drm/vmwgfx: Pass along the format info from .fb_create() to
>      drm_helper_mode_fill_fb_struct()
>    drm: Make passing of format info to drm_helper_mode_fill_fb_struct()
>      mandatory
>
>   drivers/gpu/drm/amd/amdgpu/amdgpu_display.c   |  6 ++-
>   drivers/gpu/drm/amd/amdgpu/amdgpu_display.h   |  1 +
>   .../amd/display/amdgpu_dm/amdgpu_dm_plane.c   |  4 +-
>   .../amd/display/amdgpu_dm/amdgpu_dm_plane.h   |  2 +-
>   .../arm/display/komeda/komeda_framebuffer.c   |  3 +-
>   .../arm/display/komeda/komeda_framebuffer.h   |  1 +
>   drivers/gpu/drm/arm/malidp_drv.c              | 12 +++---
>   drivers/gpu/drm/armada/armada_fb.c            | 12 +++---
>   drivers/gpu/drm/armada/armada_fb.h            |  4 +-
>   drivers/gpu/drm/armada/armada_fbdev.c         |  5 ++-
>   drivers/gpu/drm/drm_fourcc.c                  |  7 ++--
>   drivers/gpu/drm/drm_framebuffer.c             | 27 ++++++-------
>   drivers/gpu/drm/drm_gem_framebuffer_helper.c  | 38 ++++++++-----------
>   drivers/gpu/drm/drm_modeset_helper.c          |  4 +-
>   drivers/gpu/drm/exynos/exynos_drm_fb.c        |  7 ++--
>   drivers/gpu/drm/exynos/exynos_drm_fb.h        |  1 +
>   drivers/gpu/drm/exynos/exynos_drm_fbdev.c     |  5 ++-
>   drivers/gpu/drm/gma500/fbdev.c                |  5 ++-
>   drivers/gpu/drm/gma500/framebuffer.c          | 14 ++++---
>   drivers/gpu/drm/gma500/psb_drv.h              |  1 +
>   drivers/gpu/drm/i915/display/intel_fb.c       | 18 +++++----
>   drivers/gpu/drm/i915/display/intel_fb.h       |  5 ++-
>   drivers/gpu/drm/i915/display/intel_fbdev_fb.c |  6 ++-
>   .../drm/i915/display/intel_plane_initial.c    |  3 +-
>   drivers/gpu/drm/ingenic/ingenic-drm-drv.c     |  5 ++-
>   drivers/gpu/drm/mediatek/mtk_drm_drv.c        |  5 +--
>   drivers/gpu/drm/msm/msm_drv.h                 |  3 +-
>   drivers/gpu/drm/msm/msm_fb.c                  | 18 +++++----
>   drivers/gpu/drm/mxsfb/mxsfb_drv.c             |  9 +----
>   drivers/gpu/drm/nouveau/nouveau_display.c     |  6 ++-
>   drivers/gpu/drm/nouveau/nouveau_display.h     |  1 +
>   drivers/gpu/drm/omapdrm/omap_fb.c             | 10 ++---
>   drivers/gpu/drm/omapdrm/omap_fb.h             |  3 +-
>   drivers/gpu/drm/qxl/qxl_display.c             |  3 +-
>   drivers/gpu/drm/radeon/radeon_display.c       |  3 +-
>   drivers/gpu/drm/radeon/radeon_fbdev.c         |  3 +-
>   drivers/gpu/drm/renesas/rcar-du/rcar_du_kms.c |  3 +-
>   drivers/gpu/drm/renesas/rz-du/rzg2l_du_kms.c  |  3 +-
>   .../gpu/drm/renesas/shmobile/shmob_drm_kms.c  |  3 +-
>   drivers/gpu/drm/rockchip/rockchip_drm_fb.c    | 11 ++----
>   drivers/gpu/drm/tegra/drm.h                   |  2 +
>   drivers/gpu/drm/tegra/fb.c                    |  7 ++--
>   drivers/gpu/drm/tegra/fbdev.c                 |  4 +-
>   drivers/gpu/drm/tests/drm_framebuffer_test.c  |  1 +
>   drivers/gpu/drm/vc4/vc4_kms.c                 |  3 +-
>   drivers/gpu/drm/virtio/virtgpu_display.c      |  6 ++-
>   drivers/gpu/drm/vmwgfx/vmwgfx_kms.c           | 15 +++++---
>   drivers/gpu/drm/vmwgfx/vmwgfx_kms.h           |  1 +
>   drivers/gpu/drm/xe/display/intel_fbdev_fb.c   |  6 ++-
>   drivers/gpu/drm/xe/display/xe_plane_initial.c |  2 +-
>   drivers/gpu/drm/xen/xen_drm_front_kms.c       |  3 +-
>   drivers/gpu/drm/xlnx/zynqmp_kms.c             |  3 +-
>   include/drm/drm_fourcc.h                      |  2 +-
>   include/drm/drm_gem_framebuffer_helper.h      |  6 +++
>   include/drm/drm_mode_config.h                 |  3 +-
>   include/drm/drm_modeset_helper.h              |  2 +
>   56 files changed, 207 insertions(+), 139 deletions(-)
>