linux/drivers/gpu/drm/i915
Tvrtko Ursulin 8ee4f19c47 drm/i915/pmu: Stop averaging with the previous sample
Averaging with the previous sample brings a small statistical improvement
to sampling counters, but can leek a little bit of state from a current
client to the next which mulls the border between past and present for
observing clients.

This is because on event enable clients record the current counter value
and use it as reference, but with rapid off-on event cycles, and due the
delayed nature of sampling timer self-disarm, previous sample value does
not get cleared under these circumstances.

Solution is to stop averaging with the previous sample. This has a small
downside of losing some precision with short and spiky signals, but the
alternatives look too complicated for the benefit.

Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Cc: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Sagar Arun Kamble <sagar.a.kamble@intel.com>
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
Tested-by: Chris Wilson <chris@chris-wilson.co.uk>
Link: https://patchwork.freedesktop.org/patch/msgid/20171124094959.10725-1-tvrtko.ursulin@linux.intel.com
2017-11-24 13:20:48 +00:00
..
gvt drm/i915: Remove i915.enable_execlists module parameter 2017-11-20 21:53:59 +00:00
selftests drm/i915/selftests: Hold rpm wakeref for request + ggtt usage 2017-11-24 09:10:58 +00:00
dvo_ch7xxx.c drm/i915/dvo: fix debug logging on unknown DID 2017-06-01 15:53:03 +03:00
dvo_ch7017.c drm/i915/lvds: Remove magic from PLL programming 2017-05-10 13:47:55 +03:00
dvo_ivch.c
dvo_ns2501.c
dvo_sil164.c
dvo_tfp410.c
dvo.h
i915_cmd_parser.c drm/i915: Silence smatch for cmdparser 2017-11-07 16:52:24 +00:00
i915_debugfs.c drm/i915: Extract intel_get_cagf 2017-11-22 11:24:56 +00:00
i915_drv.c drm/i915/pmu: Expose a PMU interface for perf queries 2017-11-22 11:24:57 +00:00
i915_drv.h drm/i915: Convert intel_rc6_residency_us to ns 2017-11-22 11:25:05 +00:00
i915_gem_batch_pool.c drm/i915: Reinstate reservation_object zapping for batch_pool objects 2017-06-14 14:06:22 +01:00
i915_gem_batch_pool.h
i915_gem_clflush.c drm/i915: Refactor testing obj->mm.pages 2017-10-16 20:44:19 +01:00
i915_gem_clflush.h drm/i915: Force CPU synchronisation even if userspace requests ASYNC 2017-07-27 22:07:24 +02:00
i915_gem_context.c drm/i915: Move mi_set_context() into the legacy ringbuffer submission 2017-11-23 16:12:06 +00:00
i915_gem_context.h drm/i915: Record the default hw state after reset upon load 2017-11-10 17:23:10 +00:00
i915_gem_dmabuf.c drm/i915: s/sg_mask/sg_page_sizes/ 2017-10-09 17:07:29 +01:00
i915_gem_evict.c Linux 4.14-rc7 2017-11-02 12:40:41 +10:00
i915_gem_execbuffer.c drm/i915: Automatic i915_switch_context for legacy 2017-11-20 15:56:16 +00:00
i915_gem_fence_reg.c drm/i915: Track user GTT faulting per-vma 2017-10-09 17:07:29 +01:00
i915_gem_fence_reg.h
i915_gem_gtt.c drm/i915: Remove success dmesg noise for intel_rotate_pages() 2017-11-22 17:29:58 +00:00
i915_gem_gtt.h drm/i915: support 64K pages for the 48b PPGTT 2017-10-07 10:11:57 +01:00
i915_gem_internal.c drm/i915: s/sg_mask/sg_page_sizes/ 2017-10-09 17:07:29 +01:00
i915_gem_object.c drm/i915: Split obj->cache_coherent to track r/w 2017-08-15 15:46:57 +01:00
i915_gem_object.h drm/i915: Introduce GEM proxy 2017-11-14 12:26:36 +00:00
i915_gem_render_state.c drm/i915: Pull the unconditional GPU cache invalidation into request construction 2017-11-20 15:56:16 +00:00
i915_gem_render_state.h drm/i915: Stop caching the "golden" renderstate 2017-11-10 17:23:22 +00:00
i915_gem_request.c drm/i915: Unwind incomplete legacy context switches 2017-11-23 16:12:04 +00:00
i915_gem_request.h drm/i915/scheduler: Support user-defined priorities 2017-10-04 17:52:46 +01:00
i915_gem_shrinker.c drm/i915: Idle the GPU before shinking everything 2017-11-09 16:18:31 +02:00
i915_gem_stolen.c drm/i915: Use ELK stolen memory reserved detection for ILK 2017-11-15 18:49:10 +02:00
i915_gem_tiling.c drm/i915: Introduce GEM proxy 2017-11-14 12:26:36 +00:00
i915_gem_timeline.c
i915_gem_timeline.h
i915_gem_userptr.c drm/i915: Mark the userptr invalidate workqueue as WQ_MEM_RECLAIM 2017-11-17 10:58:55 +00:00
i915_gem.c drm/i915: Call i915_gem_init_userptr() before taking struct_mutex 2017-11-22 17:40:37 +00:00
i915_gem.h drm/i915: Print the condition causing GEM_BUG_ON 2017-11-16 15:35:47 +02:00
i915_gemfs.c drm/i915/gemfs: enable THP 2017-10-07 10:11:43 +01:00
i915_gemfs.h drm/i915: introduce simple gemfs 2017-10-07 10:11:41 +01:00
i915_gpu_error.c drm/i915: Remove obsolete ringbuffer emission for gen8+ 2017-11-20 21:54:58 +00:00
i915_ioc32.c
i915_irq.c drm/i915: Update execlists tasklet naming 2017-11-16 15:01:31 +00:00
i915_memcpy.c
i915_mm.c
i915_oa_bdw.c drm/i915: ensure oa config uuid is null terminated 2017-11-02 14:52:58 +00:00
i915_oa_bdw.h drm/i915/perf: prune OA configs 2017-08-03 18:18:05 +01:00
i915_oa_bxt.c drm/i915: ensure oa config uuid is null terminated 2017-11-02 14:52:58 +00:00
i915_oa_bxt.h drm/i915/perf: prune OA configs 2017-08-03 18:18:05 +01:00
i915_oa_cflgt2.c drm/i915: ensure oa config uuid is null terminated 2017-11-02 14:52:58 +00:00
i915_oa_cflgt2.h drm/i915/perf: add support for Coffeelake GT2 2017-09-18 19:46:36 +01:00
i915_oa_cflgt3.c drm/i915/perf: add support for Coffeelake GT3 2017-11-13 15:59:03 +00:00
i915_oa_cflgt3.h drm/i915/perf: add support for Coffeelake GT3 2017-11-13 15:59:03 +00:00
i915_oa_chv.c drm/i915: ensure oa config uuid is null terminated 2017-11-02 14:52:58 +00:00
i915_oa_chv.h drm/i915/perf: prune OA configs 2017-08-03 18:18:05 +01:00
i915_oa_cnl.c drm/i915/perf: enable perf support on CNL 2017-11-13 15:59:24 +00:00
i915_oa_cnl.h drm/i915/perf: enable perf support on CNL 2017-11-13 15:59:24 +00:00
i915_oa_glk.c drm/i915: ensure oa config uuid is null terminated 2017-11-02 14:52:58 +00:00
i915_oa_glk.h drm/i915/perf: prune OA configs 2017-08-03 18:18:05 +01:00
i915_oa_hsw.c drm/i915: ensure oa config uuid is null terminated 2017-11-02 14:52:58 +00:00
i915_oa_hsw.h drm/i915/perf: prune OA configs 2017-08-03 18:18:05 +01:00
i915_oa_kblgt2.c drm/i915: ensure oa config uuid is null terminated 2017-11-02 14:52:58 +00:00
i915_oa_kblgt2.h drm/i915/perf: prune OA configs 2017-08-03 18:18:05 +01:00
i915_oa_kblgt3.c drm/i915: ensure oa config uuid is null terminated 2017-11-02 14:52:58 +00:00
i915_oa_kblgt3.h drm/i915/perf: prune OA configs 2017-08-03 18:18:05 +01:00
i915_oa_sklgt2.c drm/i915: ensure oa config uuid is null terminated 2017-11-02 14:52:58 +00:00
i915_oa_sklgt2.h drm/i915/perf: prune OA configs 2017-08-03 18:18:05 +01:00
i915_oa_sklgt3.c drm/i915: ensure oa config uuid is null terminated 2017-11-02 14:52:58 +00:00
i915_oa_sklgt3.h drm/i915/perf: prune OA configs 2017-08-03 18:18:05 +01:00
i915_oa_sklgt4.c drm/i915: ensure oa config uuid is null terminated 2017-11-02 14:52:58 +00:00
i915_oa_sklgt4.h drm/i915/perf: prune OA configs 2017-08-03 18:18:05 +01:00
i915_params.c drm/i915: Remove i915.semaphores modparam 2017-11-20 21:59:09 +00:00
i915_params.h drm/i915: Remove i915.semaphores modparam 2017-11-20 21:59:09 +00:00
i915_pci.c drm/i915: remove g4x lowfreq_avail and has_pipe_cxsr 2017-10-19 15:52:52 +03:00
i915_perf.c drm/i915: Remove i915.enable_execlists module parameter 2017-11-20 21:53:59 +00:00
i915_pmu.c drm/i915/pmu: Stop averaging with the previous sample 2017-11-24 13:20:48 +00:00
i915_pmu.h drm/i915/pmu: Stop averaging with the previous sample 2017-11-24 13:20:48 +00:00
i915_pvinfo.h drm/i915: enable to read CSB and CSB write pointer from HWSP in GVT-g VM 2017-10-16 13:56:29 +03:00
i915_reg.h drm/i915/pmu: Expose a PMU interface for perf queries 2017-11-22 11:24:57 +00:00
i915_selftest.h drm/i915/selftests: Reduce the volume of the timeout message 2017-11-10 11:31:58 +00:00
i915_suspend.c drm/i915: Move i915_gem_restore_fences to i915_gem_resume 2017-09-29 12:30:17 +01:00
i915_sw_fence.c drm/i915: Convert timers to use timer_setup() 2017-10-18 14:56:10 +03:00
i915_sw_fence.h main drm pull for v4.13 2017-07-09 18:48:37 -07:00
i915_syncmap.c
i915_syncmap.h
i915_sysfs.c drm/i915: Convert intel_rc6_residency_us to ns 2017-11-22 11:25:05 +00:00
i915_trace_points.c
i915_trace.h drm/i915: Remove defunct trace points 2017-10-04 15:19:20 +01:00
i915_utils.h drm/i915: Warn in debug builds of incorrect usages of ptr_pack_bits 2017-11-03 09:28:06 +00:00
i915_vgpu.c drm/i915: Enable guest i915 full ppgtt functionality 2017-08-15 10:12:48 +08:00
i915_vgpu.h drm/i915: enable to read CSB and CSB write pointer from HWSP in GVT-g VM 2017-10-16 13:56:29 +03:00
i915_vma.c drm/i915: Mark up i915_vma_unbind() as a potential sleeper 2017-11-09 22:06:09 +00:00
i915_vma.h drm/i915: Track user GTT faulting per-vma 2017-10-09 17:07:29 +01:00
intel_acpi.c ACPI: Switch to use generic guid_t in acpi_evaluate_dsm() 2017-06-07 12:20:49 +02:00
intel_atomic_plane.c drm/i915: Pass proper old/new states to intel_plane_atomic_check_with_state() 2017-09-01 16:48:24 +03:00
intel_atomic.c drm/i915/cnl: Fix Cannonlake scaler mode programing. 2017-06-12 09:45:55 -07:00
intel_audio.c drm/i915: Fix kerneldocs for intel_audio.c 2017-11-15 17:32:54 +02:00
intel_bios.c Merge airlied/drm-next into drm-intel-next-queued 2017-11-14 07:43:00 -08:00
intel_bios.h
intel_breadcrumbs.c drm/i915: Clear breadcrumb node when cancelling signaling 2017-11-16 14:17:08 +00:00
intel_cdclk.c drm/i915/cnl: Allow 2 pixel per clock on Cannonlake. 2017-10-25 10:36:01 -07:00
intel_color.c drm/i915: Pass crtc_state to ips toggle functions, v2 2017-11-17 12:14:25 +01:00
intel_crt.c drm/i915: Eliminate crtc->config usage from CRT code 2017-11-09 20:05:18 +02:00
intel_csr.c drm/i915/dmc: DMC 1.04 for Kabylake 2017-11-23 11:14:11 +02:00
intel_ddi.c drm/i915: Generalize transcoder looping 2017-11-14 16:17:51 +02:00
intel_device_info.c drm/i915: Remove pre-production pooled-EU w/a for Broxton 2017-11-15 18:04:18 +00:00
intel_display.c drm/i915: remove stale comment from sanitize_encoder 2017-11-23 14:59:07 +01:00
intel_dp_aux_backlight.c drm/i915: Rename global i915 to i915_modparams 2017-09-22 14:50:36 +03:00
intel_dp_link_training.c drm/i915: Explicit the connector name for DP link training result 2017-07-19 08:32:42 +02:00
intel_dp_mst.c drm/i915: Nuke intel_digital_port->port 2017-11-09 20:06:14 +02:00
intel_dp.c drm/i915: sync dp link status checks against atomic commmits 2017-11-23 14:59:07 +01:00
intel_dpio_phy.c drm/i915: Nuke intel_digital_port->port 2017-11-09 20:06:14 +02:00
intel_dpll_mgr.c drm/i915/cnl: Simplify dco_fraction calculation. 2017-11-16 09:45:39 -08:00
intel_dpll_mgr.h drm/i915/cnl: Initialize PLLs 2017-06-12 09:42:18 -07:00
intel_drv.h drm/i915: Nuke crtc->plane 2017-11-21 19:51:34 +02:00
intel_dsi_dcs_backlight.c drm/i915: Initialize 'data' in intel_dsi_dcs_backlight.c 2017-08-16 18:02:00 +03:00
intel_dsi_pll.c
intel_dsi_vbt.c drm/i915/bxt: use NULL for GPIO connection ID 2017-08-21 11:52:29 +03:00
intel_dsi.c drm/i915: Eliminate some encoder->crtc usage from DSI code 2017-11-09 20:04:35 +02:00
intel_dsi.h
intel_dvo.c drm/i915: Populate output_types from .get_config() 2017-10-30 19:53:22 +02:00
intel_engine_cs.c drm/i915: Engine busy time tracking 2017-11-22 11:25:02 +00:00
intel_fbc.c drm/i915: Nuke crtc->plane 2017-11-21 19:51:34 +02:00
intel_fbdev.c drm/i915: Replace *_reference/unreference() or *_ref/unref with _get/put() 2017-10-13 16:53:59 +02:00
intel_fifo_underrun.c drm/i915: Don't rmw PIPESTAT enable bits 2017-09-25 16:54:09 +03:00
intel_frontbuffer.c
intel_frontbuffer.h
intel_guc_ct.c drm/i915/guc: Assert ctch->vma is allocated 2017-11-06 13:57:37 +00:00
intel_guc_ct.h drm/i915/guc: Introduce buffer based cmd transport 2017-05-26 13:26:53 +01:00
intel_guc_fw.c drm/i915/guc: Simplify programming of GUC_SHIM_CONTROL 2017-11-08 21:34:19 +00:00
intel_guc_fw.h drm/i915/guc: Rename intel_guc_loader.c to intel_guc_fw.c 2017-10-16 18:53:25 +03:00
intel_guc_fwif.h drm/i915/guc: Add support for reset engine using GuC commands 2017-11-02 08:42:11 +00:00
intel_guc_log.c drm/i915: Unify uC variable types to avoid flooding checkpatch.pl 2017-10-06 14:09:40 +03:00
intel_guc_log.h drm/i915: Unify uC variable types to avoid flooding checkpatch.pl 2017-10-06 14:09:40 +03:00
intel_guc_reg.h drm/i915/guc: Rename i915_guc_reg.h to intel_guc_reg.h 2017-11-24 12:09:59 +00:00
intel_guc_submission.c drm/i915/selftests: Add a GuC doorbells selftest 2017-11-17 10:02:39 +00:00
intel_guc_submission.h drm/i915/guc: Update header guard name of intel_guc_submission.h 2017-11-24 10:34:30 +00:00
intel_guc.c drm/i915/guc: Rename i915_guc_submission.c|h to intel_guc_submission.c|h 2017-11-16 15:06:18 +00:00
intel_guc.h drm/i915/guc: Rename i915_guc_reg.h to intel_guc_reg.h 2017-11-24 12:09:59 +00:00
intel_gvt.c drm/i915: Remove i915.enable_execlists module parameter 2017-11-20 21:53:59 +00:00
intel_gvt.h drm/i915/gvt: Add gvt options sanitize function 2017-05-30 15:59:47 +03:00
intel_hangcheck.c drm/i915: Remove obsolete ringbuffer emission for gen8+ 2017-11-20 21:54:58 +00:00
intel_hdmi.c drm/i915/cnl: Extend HDMI 2.0 support to CNL. 2017-11-16 09:45:52 -08:00
intel_hotplug.c drm/i915: Introduce intel_hpd_pin function. 2017-08-11 11:53:47 -07:00
intel_huc.c drm/i915/huc: Use helper function while waiting for DMA completion 2017-10-26 21:35:21 +01:00
intel_huc.h drm/i915/huc: Fix includes in intel_huc.c 2017-10-06 16:01:15 +01:00
intel_i2c.c drm/i915: Make i2c lock ops static 2017-09-01 10:30:40 -07:00
intel_lpe_audio.c drm/i915: Stop pretending to mask/unmask LPE audio interrupts 2017-05-26 11:51:18 +03:00
intel_lrc.c drm/i915: Engine busy time tracking 2017-11-22 11:25:02 +00:00
intel_lrc.h drm/i915: Remove i915.enable_execlists module parameter 2017-11-20 21:53:59 +00:00
intel_lspcon.c drm/i915: Add retries for LSPCON detection 2017-10-13 12:15:10 +03:00
intel_lvds.c drm/i915: Populate output_types from .get_config() 2017-10-30 19:53:22 +02:00
intel_mocs.c drm/i915/cnl: Cannonlake has same MOCS table than Skylake. 2017-06-07 07:29:51 -07:00
intel_mocs.h
intel_modes.c drm/i915: always update ELD connector type after get modes 2017-09-26 09:14:20 -07:00
intel_opregion.c drm/i915: Nuke intel_ddi_get_encoder_port() 2017-10-30 19:55:18 +02:00
intel_overlay.c drm: Pass struct drm_file * to __drm_mode_object_find [v2] 2017-10-12 10:03:04 +10:00
intel_panel.c drm/i915: Rename global i915 to i915_modparams 2017-09-22 14:50:36 +03:00
intel_pipe_crc.c drm/i915: Nuke intel_digital_port->port 2017-11-09 20:06:14 +02:00
intel_pm.c drm/i915: Save/restore irq state for vlv_residency_raw() 2017-11-23 07:19:10 +00:00
intel_psr.c drm/i915: Nuke intel_digital_port->port 2017-11-09 20:06:14 +02:00
intel_renderstate_gen6.c
intel_renderstate_gen7.c
intel_renderstate_gen8.c
intel_renderstate_gen9.c drm/i915/gen9: Send all components in VF state 2017-08-14 12:15:49 +03:00
intel_renderstate.h
intel_ringbuffer.c drm/i915: Move mi_set_context() into the legacy ringbuffer submission 2017-11-23 16:12:06 +00:00
intel_ringbuffer.h drm/i915: Unwind incomplete legacy context switches 2017-11-23 16:12:04 +00:00
intel_runtime_pm.c drm/i915: Start tracking voltage level in the cdclk state 2017-10-25 13:40:00 +03:00
intel_sdvo_regs.h
intel_sdvo.c drm/i915: Eliminate some encoder->crtc usage from SDVO code 2017-11-09 20:04:47 +02:00
intel_sideband.c drm/i915: Move rps.hw_lock to dev_priv and s/hw_lock/pcu_lock 2017-10-11 08:56:56 +01:00
intel_sprite.c drm/i915: s/enum plane/enum i9xx_plane_id/ 2017-11-21 19:44:03 +02:00
intel_tv.c drm/i915: Eliminate some encoder->crtc usage from TV code 2017-11-09 20:04:56 +02:00
intel_uc_fw.c drm/i915: Add Guc/HuC firmware details to error state 2017-11-06 14:22:06 +00:00
intel_uc_fw.h drm/i915: Add Guc/HuC firmware details to error state 2017-11-06 14:22:06 +00:00
intel_uc.c drm/i915/guc: Rename i915_guc_submission.c|h to intel_guc_submission.c|h 2017-11-16 15:06:18 +00:00
intel_uc.h drm/i915/guc: Move GuC core definitions into dedicated files 2017-10-06 09:37:20 +03:00
intel_uncore.c drm/i915: Re-register PMIC bus access notifier on runtime resume 2017-11-15 09:55:12 +01:00
intel_uncore.h drm/i915: Re-register PMIC bus access notifier on runtime resume 2017-11-15 09:55:12 +01:00
intel_vbt_defs.h drm/i915: Parse max HDMI TMDS clock from VBT 2017-10-30 19:48:11 +02:00
Kconfig drm/i915/fence: Avoid del_timer_sync() from inside a timer 2017-09-19 13:06:21 +01:00
Kconfig.debug drm/i915: Select DEBUG_FS for our test suite 2017-11-24 12:18:55 +00:00
Makefile drm/i915/pmu: Expose a PMU interface for perf queries 2017-11-22 11:24:57 +00:00