2
0
mirror of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git synced 2025-09-04 20:19:47 +08:00
linux/drivers/gpu/drm
Umesh Nerlige Ramappa 2a67b18e67 drm/i915/pmu: Fix synchronization of PMU callback with reset
Since the PMU callback runs in irq context, it synchronizes with gt
reset using the reset count. We could run into a case where the PMU
callback could read the reset count before it is updated. This has a
potential of corrupting the busyness stats.

In addition to the reset count, check if the reset bit is set before
capturing busyness.

In addition save the previous stats only if you intend to update them.

v2:
- The 2 reset counts captured in the PMU callback can end up being the
  same if they were captured right after the count is incremented in the
  reset flow. This can lead to a bad busyness state. Ensure that reset
  is not in progress when the initial reset count is captured.

Signed-off-by: Umesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com>
Reviewed-by: Matthew Brost <matthew.brost@intel.com>
Signed-off-by: John Harrison <John.C.Harrison@Intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20211108211057.68783-1-umesh.nerlige.ramappa@intel.com
2021-11-30 17:08:07 -08:00
..
amd drm-misc-next for 5.17: 2021-11-23 09:38:55 +10:00
arm drm/arm: malidp: Use fourcc_mod_is_vendor() helper 2021-08-16 12:18:46 +02:00
armada Char/Misc driver update for 5.16-rc1 2021-11-04 08:21:47 -07:00
aspeed drm/tiny: drm_gem_simple_display_pipe_prepare_fb is the default 2021-06-24 15:40:11 +02:00
ast Linux 5.15-rc7 2021-10-28 14:59:38 +10:00
atmel-hlcdc drm/atmel-hlcdc: Convert to Linux IRQ interfaces 2021-08-10 20:00:58 +02:00
bridge drm/bridge: parade-ps8640: Fix additional suspend/resume at bootup 2021-11-17 08:45:28 -08:00
etnaviv Merge drm/drm-next into drm-misc-next 2021-11-18 09:36:39 +01:00
exynos dma-buf: move dma-buf symbols into the DMA_BUF module namespace 2021-10-25 14:53:08 +02:00
fsl-dcu drm/fsl-dcu: Convert to Linux IRQ interfaces 2021-08-10 20:13:25 +02:00
gma500 drm/gma500: Remove generic DRM drivers in probe function 2021-10-21 09:32:51 +02:00
gud drm/format-helper: Rework format-helper conversion functions 2021-11-11 12:06:57 +01:00
hisilicon drm/kirin: dsi: Adjust probe order 2021-10-27 22:07:58 +02:00
hyperv Merge drm/drm-next into drm-misc-next 2021-11-18 09:36:39 +01:00
i2c
i810 drm: IRQ midlayer is now legacy 2021-08-10 20:14:01 +02:00
i915 drm/i915/pmu: Fix synchronization of PMU callback with reset 2021-11-30 17:08:07 -08:00
imx Revert "drm/imx: Annotate dma-fence critical section in commit path" 2021-11-05 19:08:44 +01:00
ingenic drm/ingenic: Remove bogus register write 2021-10-30 21:02:36 +01:00
kmb Merge drm/drm-next into drm-misc-next 2021-11-18 09:36:39 +01:00
lib
lima drm/shmem-helper: Pass GEM shmem object in public interfaces 2021-11-15 11:46:13 +01:00
mcde drm/mcde: Make use of the helper function devm_platform_ioremap_resource() 2021-09-07 22:50:17 +02:00
mediatek ARM: SoC drivers for 5.16 2021-11-03 17:00:52 -07:00
meson drm/meson: encoder_cvbs: switch to bridge with ATTACH_NO_CONNECTOR 2021-11-12 10:10:01 +01:00
mga drm/mga/mga_ioc32: Use struct_group() for memcpy() region 2021-09-25 08:20:48 -07:00
mgag200 drm/format-helper: Rework format-helper memcpy functions 2021-11-11 12:06:57 +01:00
msm Merge drm/drm-next into drm-misc-next 2021-11-18 09:36:39 +01:00
mxsfb drm-misc-next for 5.16: 2021-11-05 13:50:15 +10:00
nouveau drm-misc-next for 5.17: 2021-11-23 09:38:55 +10:00
omapdrm Merge drm/drm-next into drm-misc-next 2021-11-18 09:36:39 +01:00
panel Merge drm/drm-next into drm-misc-next 2021-11-18 09:36:39 +01:00
panfrost drm/shmem-helper: Pass GEM shmem object in public interfaces 2021-11-15 11:46:13 +01:00
pl111 drm/pl111: Remove unused including <linux/version.h> 2021-07-31 20:52:01 +02:00
qxl drm/qxl: User page size macro for qxl release bo 2021-09-15 08:21:32 +02:00
r128 Linux 5.15-rc7 2021-10-28 14:59:38 +10:00
radeon Merge drm/drm-next into drm-misc-next 2021-11-18 09:36:39 +01:00
rcar-du drm: rcar-du: Don't create encoder for unconnected LVDS outputs 2021-10-13 07:44:04 +10:00
rockchip Merge drm/drm-next into drm-misc-next 2021-11-18 09:36:39 +01:00
savage drm/savage: Remove references to struct drm_device.pdev 2021-05-03 19:48:30 +02:00
scheduler drm-misc-next for 5.17: 2021-11-23 09:38:55 +10:00
selftests drm/i915/selftests: Properly reset mock object propers for each test 2021-10-22 11:09:45 +02:00
shmobile drm/shmobile: Make use of the helper function devm_platform_ioremap_resource() 2021-10-07 05:42:18 +03:00
sis drm/sis: Remove references to struct drm_device.pdev 2021-05-03 19:48:33 +02:00
sti drm/sti: Use correct printk format specifiers for size_t 2021-10-07 05:42:17 +03:00
stm drm/stm: ltdc: add layer alpha support 2021-09-09 14:58:27 +02:00
sun4i drm-misc-next for 5.17: 2021-11-23 09:38:55 +10:00
tdfx
tegra Char/Misc driver update for 5.16-rc1 2021-11-04 08:21:47 -07:00
tidss drm/tidss: Make use of the helper macro SET_RUNTIME_PM_OPS() 2021-11-10 13:51:26 +02:00
tilcdc drm: Remove redundant 'flush_workqueue()' calls 2021-10-15 16:48:51 -07:00
tiny drm/simpledrm: Support virtual screen sizes 2021-11-11 12:06:58 +01:00
ttm Merge drm/drm-next into drm-misc-next 2021-11-18 09:36:39 +01:00
tve200 drm/tiny: drm_gem_simple_display_pipe_prepare_fb is the default 2021-06-24 15:40:11 +02:00
udl drm/udl: fix control-message timeout 2021-11-05 11:15:14 +01:00
v3d drm/shmem-helper: Pass GEM shmem object in public interfaces 2021-11-15 11:46:13 +01:00
vboxvideo drm/vboxvideo: Use managed interfaces for framebuffer write combining 2021-09-23 09:26:09 +02:00
vc4 Merge drm/drm-next into drm-misc-next 2021-11-18 09:36:39 +01:00
vgem drm/vgem: use shmem helpers 2021-08-12 21:41:10 +02:00
via drm: IRQ midlayer is now legacy 2021-08-10 20:14:01 +02:00
virtio Merge drm/drm-next into drm-misc-next 2021-11-18 09:36:39 +01:00
vkms drm/vkms: Use offset-adjusted shadow-plane mappings and output 2021-08-08 20:27:52 +02:00
vmwgfx drm next/fixes for 5.16-rc1 2021-11-12 12:11:07 -08:00
xen drm/xen: Implement mmap as GEM object function 2021-11-11 12:06:57 +01:00
xlnx drm/xlnx/zynqmp_disp: Fix incorrectly named enum 'zynqmp_disp_layer_id' 2021-08-09 02:28:05 +03:00
drm_agpsupport.c drm: Include <asm/agp.h> iff CONFIG_AGP is set 2021-05-11 14:13:33 +02:00
drm_aperture.c drm: Fix typo in comments 2021-08-02 10:19:43 +02:00
drm_atomic_helper.c drm: Fix typo in comments 2021-08-02 10:19:43 +02:00
drm_atomic_state_helper.c
drm_atomic_uapi.c drm/connector: Add support for privacy-screen properties (v4) 2021-10-14 13:12:20 +02:00
drm_atomic.c drm: Fix typo in comments 2021-08-02 10:19:43 +02:00
drm_auth.c drm: add lockdep assert to drm_is_current_master_locked 2021-08-05 12:08:15 +02:00
drm_blend.c drm: drm_blend.c: Use tabs for code indents 2021-04-22 10:46:35 +02:00
drm_bridge_connector.c
drm_bridge.c drm/bridge: Document the probe issue with MIPI-DSI bridges 2021-09-24 19:25:23 +02:00
drm_bufs.c drm: Fix typo in comments 2021-08-02 10:19:43 +02:00
drm_cache.c treewide: Replace the use of mem_encrypt_active() with cc_platform_has() 2021-10-04 11:47:24 +02:00
drm_client_modeset.c Revert "drm: cleanup: drm_modeset_lock_all_ctx() --> DRM_MODESET_LOCK_ALL_BEGIN()" 2021-10-04 09:34:57 -04:00
drm_client.c
drm_color_mgmt.c
drm_connector.c drm/connector: use drm_sysfs_connector_hotplug_event 2021-11-02 14:27:11 +01:00
drm_context.c drm: correct function name drm_legacy_ctxbitmap_flush() 2021-05-16 22:01:14 +02:00
drm_crtc_helper_internal.h
drm_crtc_helper.c Revert "drm: cleanup: drm_modeset_lock_all() --> DRM_MODESET_LOCK_ALL_BEGIN()" 2021-10-04 09:34:57 -04:00
drm_crtc_internal.h drm/connector: Add drm_connector_find_by_fwnode() function (v3) 2021-08-20 12:35:59 +02:00
drm_crtc.c
drm_damage_helper.c drm: Fix typo in comments 2021-08-02 10:19:43 +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_debugfs.c drm: avoid blocking in drm_clients_info's rcu section 2021-07-20 20:14:42 +02:00
drm_displayid.c drm/displayid: rename displayid_hdr to displayid_header 2021-03-31 15:42:39 +03:00
drm_dma.c drm: remove usage of drm_pci_alloc/free 2021-04-26 18:19:15 +02:00
drm_dp_aux_bus.c Bus: Make remove callback return void tag 2021-08-11 08:47:08 +10:00
drm_dp_aux_dev.c drm/dp: Add backpointer to drm_device in drm_dp_aux 2021-04-27 18:43:42 -04:00
drm_dp_cec.c
drm_dp_dual_mode_helper.c drm/dp_dual_mode: Convert drm_dp_dual_mode_helper.c to using drm_err/drm_dbg_kms() 2021-04-27 18:43:45 -04:00
drm_dp_helper.c drm/dp, drm/i915: Add support for VESA backlights using PWM for brightness control 2021-11-17 17:36:48 -05:00
drm_dp_mst_topology_internal.h
drm_dp_mst_topology.c Merge branch 'akpm' (patches from Andrew) 2021-11-09 10:11:53 -08:00
drm_drv.c drm: fix null-ptr-deref in drm_dev_init_release() 2021-10-14 21:39:02 +02:00
drm_dsc.c drm: Fix typo in comments 2021-08-02 10:19:43 +02:00
drm_dumb_buffers.c
drm_edid_load.c
drm_edid.c Linux 5.15-rc7 2021-10-28 14:59:38 +10:00
drm_encoder_slave.c
drm_encoder.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 Merge drm/drm-next into drm-misc-next 2021-11-18 09:36:39 +01:00
drm_file.c drm: Fix typo in comments 2021-08-02 10:19:43 +02:00
drm_flip_work.c
drm_format_helper.c drm/format-helper: Streamline blit-helper interface 2021-11-11 12:06:57 +01:00
drm_fourcc.c drm: Add R10 and R12 FourCC 2021-10-28 17:20:45 +10:00
drm_framebuffer.c Revert "drm: cleanup: drm_modeset_lock_all() --> DRM_MODESET_LOCK_ALL_BEGIN()" 2021-10-04 09:34:57 -04:00
drm_gem_atomic_helper.c drm: use new iterator in drm_gem_plane_helper_prepare_fb v3 2021-10-25 09:33:22 +02:00
drm_gem_cma_helper.c drm-misc-next for 5.17: 2021-11-23 09:38:55 +10:00
drm_gem_framebuffer_helper.c dma-buf: move dma-buf symbols into the DMA_BUF module namespace 2021-10-25 14:53:08 +02:00
drm_gem_shmem_helper.c Merge drm/drm-next into drm-misc-next 2021-11-18 09:36:39 +01: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/ttm: remove ttm_tt_destroy_common v2 2021-08-23 13:54:55 +02:00
drm_gem.c drm: use new iterator in drm_gem_fence_array_add_implicit v3 2021-10-07 14:49:11 +02:00
drm_hashtab.c
drm_hdcp.c drm: Fix typo in comments 2021-08-02 10:19:43 +02:00
drm_internal.h drm: Mark IRQ_BUSID ioctl as legacy 2021-05-17 21:19:48 +02:00
drm_ioc32.c drm: Copy drm_wait_vblank to user before returning 2021-08-17 13:56:03 -04:00
drm_ioctl.c GPU: drm: fix style errors 2021-08-28 19:00:20 +02:00
drm_irq.c drm: Build drm_irq.o only if CONFIG_DRM_LEGACY has been set 2021-10-22 16:20:12 +02:00
drm_kms_helper_common.c drm: Remove unused code to load the non-existing fbcon.ko 2021-08-18 14:33:47 +02:00
drm_lease.c drm/lease: allow empty leases 2021-10-01 15:55:47 +02:00
drm_legacy_misc.c drm: IRQ midlayer is now legacy 2021-08-10 20:14:01 +02:00
drm_legacy.h drm: Mark IRQ_BUSID ioctl as legacy 2021-05-17 21:19:48 +02:00
drm_lock.c
drm_managed.c
drm_memory.c drm: Mark AGP implementation and ioctls as legacy 2021-05-10 15:46:58 +02:00
drm_mipi_dbi.c drm/format-helper: Rework format-helper conversion functions 2021-11-11 12:06:57 +01:00
drm_mipi_dsi.c drm/mipi-dsi: Create devm device attachment 2021-09-24 19:25:33 +02:00
drm_mm.c lib, stackdepot: add helper to print stack entries into buffer 2021-11-09 10:02:50 -08:00
drm_mode_config.c
drm_mode_object.c drm: Fix typo in comments 2021-08-02 10:19:43 +02:00
drm_modes.c drm: Fix typo in comments 2021-08-02 10:19:43 +02:00
drm_modeset_helper.c
drm_modeset_lock.c Removed the TTM Huge Page functionnality to address a crash, a timeout 2021-11-11 08:14:19 +10:00
drm_of.c drm: of: Add drm_of_lvds_get_data_mapping 2021-10-14 20:47:30 +02:00
drm_panel_orientation_quirks.c Linux 5.15 2021-11-12 09:23:16 +10: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_pci.c drm: Mark IRQ_BUSID ioctl as legacy 2021-05-17 21:19:48 +02:00
drm_plane_helper.c drm/plane-helper: fix uninitialized variable reference 2021-10-07 12:24:44 +02:00
drm_plane.c drm: Fix typo in comments 2021-08-02 10:19:43 +02:00
drm_prime.c drm next/fixes for 5.16-rc1 2021-11-12 12:11:07 -08:00
drm_print.c isystem: ship and use stdarg.h 2021-08-19 09:02:55 +09:00
drm_privacy_screen_x86.c drm/privacy-screen: Add X86 specific arch init code 2021-10-14 13:12:24 +02:00
drm_privacy_screen.c drm/privacy-screen: Add notifier support (v2) 2021-10-14 13:12:25 +02:00
drm_probe_helper.c drm/probe-helper: use drm_kms_helper_connector_hotplug_event 2021-11-02 14:27:14 +01:00
drm_property.c drm: property: Replace strncpy() with strscpy_pad() 2021-10-07 05:42:13 +03:00
drm_rect.c
drm_scatter.c
drm_scdc_helper.c drm: Fix typo in comments 2021-08-02 10:19:43 +02:00
drm_self_refresh_helper.c
drm_simple_kms_helper.c drm/simple-kms: Support custom CRTC state 2021-08-08 20:14:08 +02:00
drm_syncobj.c drm: Fix typo in comments 2021-08-02 10:19:43 +02:00
drm_sysfs.c drm/sysfs: introduce drm_sysfs_connector_hotplug_event 2021-11-02 14:27:06 +01:00
drm_trace_points.c
drm_trace.h
drm_vblank_work.c
drm_vblank.c drm: IRQ midlayer is now legacy 2021-08-10 20:14:01 +02:00
drm_vm.c drm: Mark AGP implementation and ioctls as legacy 2021-05-10 15:46:58 +02:00
drm_vma_manager.c drm: Fix typo in comments 2021-08-02 10:19:43 +02:00
drm_writeback.c
Kconfig Merge drm/drm-next into drm-misc-next 2021-11-18 09:36:39 +01:00
Makefile drm: Link CMA framebuffer helpers into KMS helper library 2021-10-27 20:21:44 +02:00