WSL2-Linux-Kernel/drivers/gpu/drm
Juan A. Suarez Romero 26a4dc29b7 drm/v3d: Expose performance counters to userspace
The V3D engine has several hardware performance counters that can of
interest for userspace performance analysis tools.

This exposes new ioctls to create and destroy performance monitor
objects, as well as to query the counter values.

Each created performance monitor object has an ID that can be attached
to CL/CSD submissions, so the driver enables the requested counters when
the job is submitted, and updates the performance monitor values when
the job is done.

It is up to the user to ensure all the jobs have been finished before
getting the performance monitor values. It is also up to the user to
properly synchronize BCL jobs when submitting jobs with different
performance monitors attached.

Cc: Daniel Vetter <daniel@ffwll.ch>
Cc: David Airlie <airlied@linux.ie>
Cc: Emma Anholt <emma@anholt.net>
To: dri-devel@lists.freedesktop.org
Signed-off-by: Juan A. Suarez Romero <jasuarez@igalia.com>
Acked-by: Melissa Wen <mwen@igalia.com>
Signed-off-by: Melissa Wen <melissa.srw@gmail.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20210608111541.461991-1-jasuarez@igalia.com
2021-07-21 00:19:59 +01:00
..
amd drm/aperture: Pass DRM driver structure instead of driver name 2021-07-01 11:11:55 +02:00
arm drm/arm/komeda: Don't include drm_irq.h 2021-07-08 14:10:47 +02:00
armada drm/aperture: Pass DRM driver structure instead of driver name 2021-07-01 11:11:55 +02:00
aspeed drm/tiny: drm_gem_simple_display_pipe_prepare_fb is the default 2021-06-24 15:40:11 +02:00
ast drm/ast: Disable fast reset after DRAM initial 2021-07-20 11:19:57 +02:00
atmel-hlcdc
bridge drm: bridge: nwl-dsi: Drop unused nwl_dsi_plat_clk_config 2021-07-10 09:10:09 +02:00
etnaviv drm/sched: Allow using a dedicated workqueue for the timeout/fault tdr 2021-07-01 08:53:25 +02:00
exynos drm/exynos: Don't set struct drm_device.irq_enabled 2021-06-29 11:08:43 +02:00
fsl-dcu
gma500 drm/gma500: Add the missed drm_gem_object_put() in psb_user_framebuffer_create() 2021-07-09 21:32:04 +02:00
gud drm/gud: Add async_flush module parameter 2021-07-08 14:34:28 +02:00
hisilicon drm/hisilicon/hibmc: Convert to Linux IRQ interfaces 2021-07-08 14:12:43 +02:00
hyperv drm/aperture: Pass DRM driver structure instead of driver name 2021-07-01 11:11:55 +02:00
i2c
i810
i915 drm/aperture: Pass DRM driver structure instead of driver name 2021-07-01 11:11:55 +02:00
imx drm/imx/dcss: Don't set struct drm_device.irq_enabled 2021-06-29 11:08:43 +02:00
ingenic drm/ingenic: Convert to Linux IRQ interfaces 2021-07-19 21:50:50 +01:00
kmb
lib
lima drm/sched: Allow using a dedicated workqueue for the timeout/fault tdr 2021-07-01 08:53:25 +02:00
mcde drm/tiny: drm_gem_simple_display_pipe_prepare_fb is the default 2021-06-24 15:40:11 +02:00
mediatek drm/mediatek: Don't set struct drm_device.irq_enabled 2021-06-29 11:08:43 +02:00
meson drm/meson: Convert to Linux IRQ interfaces 2021-07-08 14:09:34 +02:00
mga
mgag200 drm/mgag200: Constify LUT for programming bpp 2021-07-05 08:55:47 +02:00
msm drm/msm: always wait for the exclusive fence 2021-07-09 12:30:37 +02:00
mxsfb drm/<driver>: drm_gem_plane_helper_prepare_fb is now the default 2021-06-24 15:35:24 +02:00
nouveau drm/nouveau: always wait for the exclusive fence 2021-07-08 14:59:08 +02:00
omapdrm drm/omapdrm: Remove outdated comment 2021-07-15 11:24:53 +02:00
panel drm/panel: ws2401: Add driver for WideChips WS2401 2021-07-17 13:10:29 +02:00
panfrost drm/panfrost:fix the exception name always "UNKNOWN" 2021-07-12 11:13:44 +01:00
pl111 drm/tiny: drm_gem_simple_display_pipe_prepare_fb is the default 2021-06-24 15:40:11 +02:00
qxl drm/qxl: Convert to Linux IRQ interfaces 2021-07-15 11:16:06 +02:00
r128 drm: fix leaked dma handles after removing drm_pci_free 2021-05-26 21:18:13 +02:00
radeon drm/aperture: Pass DRM driver structure instead of driver name 2021-07-01 11:11:55 +02:00
rcar-du drm/rcar-du: Don't set struct drm_device.irq_enabled 2021-06-29 11:08:43 +02:00
rockchip drm/aperture: Pass DRM driver structure instead of driver name 2021-07-01 11:11:55 +02:00
savage
scheduler drm/sched: Allow using a dedicated workqueue for the timeout/fault tdr 2021-07-01 08:53:25 +02:00
selftests
shmobile
sis
sti drm/sti: Don't set struct drm_device.irq_enabled 2021-06-29 11:08:43 +02:00
stm drm/stm: dsi: compute the transition time from LP to HS and back 2021-07-19 15:35:55 +02:00
sun4i drm/aperture: Pass DRM driver structure instead of driver name 2021-07-01 11:11:55 +02:00
tdfx
tegra drm/aperture: Pass DRM driver structure instead of driver name 2021-07-01 11:11:55 +02:00
tidss drm/tidss: Don't use struct drm_device.irq_enabled 2021-06-29 15:40:52 +02:00
tilcdc
tiny drm/bochs: Fix missing pci_disable_device() on error in bochs_pci_probe() 2021-07-20 11:19:57 +02:00
ttm drm/ttm: add TTM_PL_FLAG_TEMPORARY flag v3 2021-06-23 14:59:39 -04:00
tve200 drm/tiny: drm_gem_simple_display_pipe_prepare_fb is the default 2021-06-24 15:40:11 +02:00
udl
v3d drm/v3d: Expose performance counters to userspace 2021-07-21 00:19:59 +01:00
vboxvideo drm/vbox: Convert to Linux IRQ interfaces 2021-07-15 11:16:06 +02:00
vc4 drm/vc4: hdmi: Remove drm_encoder->crtc usage 2021-07-15 11:08:25 +02:00
vgem Revert "drm/vgem: Implement mmap as GEM object function" 2021-07-13 13:15:52 +02:00
via
virtio drm/aperture: Pass DRM driver structure instead of driver name 2021-07-01 11:11:55 +02:00
vkms drm/vkms: Use dma-buf mapping from shadow-plane state for composing 2021-07-13 13:36:21 +02:00
vmwgfx drm/vmwgfx: Convert to Linux IRQ interfaces 2021-07-08 14:11:43 +02:00
xen drm/tiny: drm_gem_simple_display_pipe_prepare_fb is the default 2021-06-24 15:40:11 +02:00
xlnx drm/xlnx: Don't set struct drm_device.irq_enabled 2021-06-29 15:40:53 +02:00
zte drm/zte: Don't set struct drm_device.irq_enabled 2021-06-29 15:40:53 +02:00
Kconfig drm/bochs: Move to tiny/ 2021-07-05 08:54:44 +02:00
Makefile drm/bochs: Move to tiny/ 2021-07-05 08:54:44 +02:00
drm_agpsupport.c
drm_aperture.c drm/aperture: Pass DRM driver structure instead of driver name 2021-07-01 11:11:55 +02:00
drm_atomic.c
drm_atomic_helper.c drm/atomic-helper: make drm_gem_plane_helper_prepare_fb the default 2021-06-24 15:35:13 +02:00
drm_atomic_state_helper.c
drm_atomic_uapi.c
drm_auth.c drm: protect drm_master pointers in drm_lease.c 2021-07-20 20:22:19 +02:00
drm_blend.c
drm_bridge.c
drm_bridge_connector.c
drm_bufs.c drm: fix leaked dma handles after removing drm_pci_free 2021-05-26 21:18:13 +02:00
drm_cache.c drm: Add a prefetching memcpy_from_wc 2021-06-07 16:07:08 +02:00
drm_client.c
drm_client_modeset.c
drm_color_mgmt.c
drm_connector.c drm: avoid circular locks in drm_mode_getconnector 2021-07-20 20:13:56 +02:00
drm_context.c
drm_crtc.c
drm_crtc_helper.c
drm_crtc_helper_internal.h
drm_crtc_internal.h
drm_damage_helper.c
drm_debugfs.c drm: avoid blocking in drm_clients_info's rcu section 2021-07-20 20:14:42 +02:00
drm_debugfs_crc.c drm/doc: document how userspace should find out CRTC index 2021-06-10 19:14:47 +02:00
drm_displayid.c
drm_dma.c
drm_dp_aux_bus.c drm: Introduce the DP AUX bus 2021-06-11 12:30:39 -07:00
drm_dp_aux_dev.c
drm_dp_cec.c
drm_dp_dual_mode_helper.c
drm_dp_helper.c drm/dp: For drm_panel_dp_aux_backlight(), init backlight as disabled 2021-07-15 08:03:29 -07:00
drm_dp_mst_topology.c drm/dp_mst: Use kHz as link rate units when settig source max link caps at init 2021-05-27 15:30:59 -04:00
drm_dp_mst_topology_internal.h
drm_drv.c drm: Add a prefetching memcpy_from_wc 2021-06-07 16:07:08 +02:00
drm_dsc.c
drm_dumb_buffers.c
drm_edid.c
drm_edid_load.c
drm_encoder.c
drm_encoder_slave.c
drm_fb_cma_helper.c drm: Add and export function drm_fb_cma_sync_non_coherent 2021-05-25 11:42:09 +01:00
drm_fb_helper.c drm/fb-helper: improve DRM fbdev emulation device names 2021-05-26 21:22:38 +02:00
drm_file.c drm: serialize drm_file.master with a new spinlock 2021-07-20 20:17:58 +02:00
drm_flip_work.c
drm_format_helper.c
drm_fourcc.c Merge tag 'amd-drm-next-5.14-2021-06-02' of https://gitlab.freedesktop.org/agd5f/linux into drm-next 2021-06-04 06:13:57 +10:00
drm_framebuffer.c
drm_gem.c drm/gem: Tiny kernel clarification for drm_gem_fence_array_add 2021-06-24 14:53:42 +02:00
drm_gem_atomic_helper.c drm/gem: Export implementation of shadow-plane helpers 2021-07-13 13:30:58 +02:00
drm_gem_cma_helper.c drm: Fix misleading documentation of drm_gem_cma_create() 2021-06-01 17:27:20 +01:00
drm_gem_framebuffer_helper.c
drm_gem_shmem_helper.c drm/shmem-helper: Align to page size in dumb_create 2021-07-13 15:44:15 +02:00
drm_gem_ttm_helper.c drm/ttm: rename bo->mem and make it a pointer 2021-06-02 11:07:25 +02:00
drm_gem_vram_helper.c drm/vram-helper: Unexport drm_vram_helper_{alloc,release}_mm() 2021-07-05 08:55:11 +02:00
drm_hashtab.c
drm_hdcp.c
drm_internal.h
drm_ioc32.c
drm_ioctl.c
drm_irq.c drm: Don't test for IRQ support in VBLANK ioctls 2021-06-29 11:03:39 +02:00
drm_kms_helper_common.c
drm_lease.c drm: protect drm_master pointers in drm_lease.c 2021-07-20 20:22:19 +02:00
drm_legacy.h
drm_legacy_misc.c
drm_lock.c
drm_managed.c
drm_memory.c
drm_mipi_dbi.c drm/dbi: Support DBI typec1 read operations 2021-06-14 22:20:35 +02:00
drm_mipi_dsi.c
drm_mm.c
drm_mode_config.c
drm_mode_object.c
drm_modes.c
drm_modeset_helper.c
drm_modeset_lock.c
drm_of.c drm/of: free the iterator object on failure 2021-07-15 10:54:04 +01:00
drm_panel.c drm/dp: Move panel DP AUX backlight support to drm_dp_helper 2021-07-13 06:38:37 -07:00
drm_panel_orientation_quirks.c
drm_pci.c
drm_plane.c
drm_plane_helper.c
drm_prime.c
drm_print.c
drm_probe_helper.c
drm_property.c
drm_rect.c
drm_scatter.c
drm_scdc_helper.c
drm_self_refresh_helper.c
drm_simple_kms_helper.c drm/simple-helper: drm_gem_simple_display_pipe_prepare_fb as default 2021-06-24 15:39:46 +02:00
drm_syncobj.c dma-buf: add dma_fence_chain_alloc/free v3 2021-06-14 19:38:34 +02:00
drm_sysfs.c
drm_trace.h
drm_trace_points.c
drm_vblank.c drm: Don't test for IRQ support in VBLANK ioctls 2021-06-29 11:03:39 +02:00
drm_vblank_work.c
drm_vm.c
drm_vma_manager.c
drm_writeback.c