linux_dsm_epyc7002/drivers/gpu/drm/i915
Chris Wilson c5418a8b38 drm/i915: Set our shrinker->batch to 4096 (~16MiB)
Prefer to defer activating our GEM shrinker until we have a few
megabytes to free; or we have accumulated sufficient mempressure by
deferring the reclaim to force a shrink. The intent is that because our
objects may typically be large, we are too effective at shrinking and
are not rewarded for freeing more pages than the batch. It will also
defer the initial shrinking to hopefully put it at a lower priority than
say the buffer cache (although it will balance out over a number of
reclaims, with GEM being more bursty).

v2: Give it a feedback system to try and tune the batch size towards
an effective size for the available objects.
v3: Start keeping track of shrinker stats in debugfs
v4: Protect against finding no shrinkable objects (div-by-zero)

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20171013202621.7276-7-chris@chris-wilson.co.uk
2017-10-16 20:44:19 +01:00
..
gvt drm/i915/execlists: Distinguish the incomplete context notifies 2017-10-04 17:52:45 +01:00
selftests drm/i915: Move dev_priv->mm.[un]bound_list to its own lock 2017-10-16 20:44:19 +01: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: Recreate vmapping even when the object is pinned 2017-08-30 12:08:11 -07:00
i915_debugfs.c drm/i915: Set our shrinker->batch to 4096 (~16MiB) 2017-10-16 20:44:19 +01:00
i915_drv.c drm/i915/userptr: Drop struct_mutex before cleanup 2017-10-12 09:11:32 +01:00
i915_drv.h drm/i915: Move dev_priv->mm.[un]bound_list to its own lock 2017-10-16 20:44:19 +01: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/scheduler: Support user-defined priorities 2017-10-04 17:52:46 +01:00
i915_gem_context.h drm/i915: Replace execbuf vma ht with an idr 2017-08-18 11:59:02 +01: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 drm/i915/selftests: Exercise adding requests to a full GGTT 2017-10-12 21:06:26 +01:00
i915_gem_execbuffer.c drm/i915: Try a minimal attempt to insert the whole object for relocations 2017-10-09 17:07:29 +01: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: Move dev_priv->mm.[un]bound_list to its own lock 2017-10-16 20:44:19 +01: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: Move dev_priv->mm.[un]bound_list to its own lock 2017-10-16 20:44:19 +01:00
i915_gem_render_state.c drm/i915: Refactor testing obj->mm.pages 2017-10-16 20:44:19 +01:00
i915_gem_render_state.h
i915_gem_request.c drm/i915: Use rcu instead of stop_machine in set_wedged 2017-10-11 17:51:21 +02: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: Set our shrinker->batch to 4096 (~16MiB) 2017-10-16 20:44:19 +01:00
i915_gem_stolen.c drm/i915: Move dev_priv->mm.[un]bound_list to its own lock 2017-10-16 20:44:19 +01:00
i915_gem_tiling.c drm/i915: Refactor testing obj->mm.pages 2017-10-16 20:44:19 +01:00
i915_gem_timeline.c drm/i915: Squash repeated awaits on the same fence 2017-05-03 11:08:48 +01:00
i915_gem_timeline.h drm/i915: Rename intel_timeline.sync_seqno[] to .global_sync[] 2017-05-03 11:08:52 +01:00
i915_gem_userptr.c drm/i915: Rename obj->pin_display to obj->pin_global 2017-10-16 20:44:19 +01:00
i915_gem.c drm/i915: Move dev_priv->mm.[un]bound_list to its own lock 2017-10-16 20:44:19 +01:00
i915_gem.h drm/i915: Squash repeated awaits on the same fence 2017-05-03 11:08:48 +01: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: Name i915_runtime_pm structure in dev_priv as "runtime_pm" 2017-10-11 08:56:54 +01:00
i915_guc_reg.h
i915_guc_submission.c drm/i915: Name structure in dev_priv that contains RPS/RC6 state as "gt_pm" 2017-10-11 08:56:59 +01:00
i915_guc_submission.h drm/i915: Unify uC variable types to avoid flooding checkpatch.pl 2017-10-06 14:09:40 +03:00
i915_ioc32.c
i915_irq.c drm/i915: Name structure in dev_priv that contains RPS/RC6 state as "gt_pm" 2017-10-11 08:56:59 +01:00
i915_memcpy.c
i915_mm.c
i915_oa_bdw.c drm/i915/perf: leave GDT_CHICKEN_BITS programming in configs 2017-08-03 18:18:44 +01: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/perf: leave GDT_CHICKEN_BITS programming in configs 2017-08-03 18:18:44 +01: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/perf: add support for Coffeelake GT2 2017-09-18 19:46:36 +01:00
i915_oa_cflgt2.h drm/i915/perf: add support for Coffeelake GT2 2017-09-18 19:46:36 +01:00
i915_oa_chv.c drm/i915/perf: leave GDT_CHICKEN_BITS programming in configs 2017-08-03 18:18:44 +01:00
i915_oa_chv.h drm/i915/perf: prune OA configs 2017-08-03 18:18:05 +01:00
i915_oa_glk.c drm/i915/perf: leave GDT_CHICKEN_BITS programming in configs 2017-08-03 18:18:44 +01: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/perf: leave GDT_CHICKEN_BITS programming in configs 2017-08-03 18:18:44 +01: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/perf: leave GDT_CHICKEN_BITS programming in configs 2017-08-03 18:18:44 +01: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/perf: leave GDT_CHICKEN_BITS programming in configs 2017-08-03 18:18:44 +01: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/perf: leave GDT_CHICKEN_BITS programming in configs 2017-08-03 18:18:44 +01: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/perf: leave GDT_CHICKEN_BITS programming in configs 2017-08-03 18:18:44 +01: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/perf: leave GDT_CHICKEN_BITS programming in configs 2017-08-03 18:18:44 +01: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 use_mmio_flip modparm, v2. 2017-10-04 15:51:09 +02:00
i915_params.h drm/i915: Remove use_mmio_flip modparm, v2. 2017-10-04 15:51:09 +02:00
i915_pci.c drm/i915: enable platform support for 2M pages 2017-10-07 10:12:05 +01:00
i915_perf.c drm/i915: Rename global i915 to i915_modparams 2017-09-22 14:50:36 +03: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: Fix DP_AUX_CH_CTL_TIME_OUT naming 2017-10-13 10:50:58 +03:00
i915_selftest.h drm/i915: Don't use MI_STORE_DWORD_IMM on Sandybridge/vcs 2017-08-18 11:55:02 +01: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/selftests: Wrap a timer into a i915_sw_fence 2017-10-12 21:06:26 +01:00
i915_sw_fence.h main drm pull for v4.13 2017-07-09 18:48:37 -07:00
i915_syncmap.c drm/i915: Squash repeated awaits on the same fence 2017-05-03 11:08:48 +01:00
i915_syncmap.h drm/i915: Squash repeated awaits on the same fence 2017-05-03 11:08:48 +01:00
i915_sysfs.c drm/i915: Rename intel_enable_rc6 to intel_rc6_enabled 2017-10-11 08:57:02 +01: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: Try harder to finish the idle-worker 2017-10-06 17:49:46 +01: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: Move dev_priv->mm.[un]bound_list to its own lock 2017-10-16 20:44:19 +01: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: Don't relay on I915_MAX_PIPES 2017-10-10 18:07:48 +03:00
intel_bios.c drm/i915/bios: don't pass bdb to parsers that don't parse VBT directly 2017-10-10 09:06:33 +03:00
intel_bios.h
intel_breadcrumbs.c i915: Use %pS printk format for direct addresses 2017-09-27 14:23:30 +02:00
intel_cdclk.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_color.c drm/i915: Use crtc_state_is_legacy_gamma in intel_color_check 2017-10-06 10:42:59 +02:00
intel_crt.c drm/i915/crt: clean up encoder hook assignment 2017-10-06 11:30:54 +03:00
intel_csr.c drm/i915: Update DMC firmware load error messages 2017-10-16 18:53:28 +03:00
intel_ddi.c drm/i915: Use bdw_ddi_translations_fdi for Broadwell 2017-10-13 21:02:52 +01:00
intel_device_info.c drm/i915/cnl: Add support slice/subslice/eu configs 2017-09-26 13:02:44 -07:00
intel_display.c drm/i915: Dump 'output_types' in crtc state dump 2017-10-13 20:49:08 +03: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: Get rid of hardcoded pipes 2017-10-13 17:04:58 +03:00
intel_dp.c drm/i915/bdw: Fix DP_AUX_CH_CTL_TIME_OUT setting 2017-10-13 10:51:18 +03:00
intel_dpio_phy.c drm/i915: Fix DDI PHY init if it was already on 2017-10-03 12:09:52 +03:00
intel_dpll_mgr.c drm/i915/cnl: Dump the right pll registers when dumping pipe config. 2017-08-11 11:41:45 -07:00
intel_dpll_mgr.h drm/i915/cnl: Initialize PLLs 2017-06-12 09:42:18 -07:00
intel_drv.h drm/i915: Start tracking PSR state in crtc state 2017-10-12 21:18:00 +03: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: push DDI and DSI underrun reporting on enable to encoder 2017-10-06 11:30:31 +03:00
intel_dsi.h
intel_dvo.c drm/i915: Reuse normal state readout for LVDS/DVO fixed mode 2017-10-11 19:44:19 +03:00
intel_engine_cs.c drm/i915: enable to read CSB and CSB write pointer from HWSP in GVT-g VM 2017-10-16 13:56:29 +03:00
intel_fbc.c drm/i915: Rename global i915 to i915_modparams 2017-09-22 14:50:36 +03: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: Introduce buffer based cmd transport 2017-05-26 13:26:53 +01: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/uc: Unify firmware loading 2017-10-16 18:53:29 +03: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: Small fixups post code move 2017-10-16 18:53:23 +03: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.c drm/i915/guc: Small fixups post code move 2017-10-16 18:53:23 +03:00
intel_guc.h drm/i915/guc: Rename intel_guc_loader.c to intel_guc_fw.c 2017-10-16 18:53:25 +03:00
intel_gvt.c drm/i915: Rename global i915 to i915_modparams 2017-09-22 14:50:36 +03: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: Rename global i915 to i915_modparams 2017-09-22 14:50:36 +03:00
intel_hdmi.c drm/i915: Constify states passed to enable/disable/etc. encoder hooks 2017-08-22 17:59:02 +03: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: Move fw select function 2017-10-16 18:53:30 +03: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: Remove walk over obj->vma_list for the shrinker 2017-10-16 20:44:19 +01:00
intel_lrc.h drm/i915/execlists: Distinguish the incomplete context notifies 2017-10-04 17:52:45 +01:00
intel_lspcon.c drm/i915: Add retries for LSPCON detection 2017-10-13 12:15:10 +03:00
intel_lvds.c drm/i915: Allow PCH platforms fall back to BIOS LVDS mode 2017-10-11 21:43:30 +03: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-20 10:36:34 +03:00
intel_opregion.c drm/i915: Rename global i915 to i915_modparams 2017-09-22 14:50:36 +03:00
intel_overlay.c drm/i915: More surgically unbreak the modeset vs reset deadlock 2017-08-14 17:03:36 +02: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: Favor for_each_pipe() macro 2017-10-10 18:29:52 +03:00
intel_pm.c drm/i915/cnl: WaRsUseTimeoutMode 2017-10-16 11:16:16 -07:00
intel_psr.c drm/i915: Start tracking PSR state in crtc state 2017-10-12 21:18:00 +03: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: Remove walk over obj->vma_list for the shrinker 2017-10-16 20:44:19 +01:00
intel_ringbuffer.h drm/i915: Make i915_engine_info pretty printer to standalone 2017-10-09 17:07:28 +01:00
intel_runtime_pm.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_sdvo_regs.h
intel_sdvo.c drm/i915: Make i2c lock ops static 2017-09-01 10:30:40 -07: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: Increase atomic update vblank evasion time with lockdep 2017-10-10 16:03:02 +02:00
intel_tv.c drm/i915: Use mul_u32_u32() for 32b x 32b -> 64b result 2017-09-13 13:27:20 +01:00
intel_uc_fw.c drm/i915/uc: Unify firmware loading 2017-10-16 18:53:29 +03:00
intel_uc_fw.h drm/i915/uc: Unify firmware loading 2017-10-16 18:53:29 +03:00
intel_uc.c drm/i915/guc: Update Guc messages on load failure 2017-10-16 18:53:30 +03: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: Always stop the rings before a missing GPU reset 2017-10-13 20:57:29 +01:00
intel_uncore.h drm/i915: Provide an assert for when we expect forcewake to be held 2017-10-09 17:07:29 +01:00
intel_vbt_defs.h drm/i915/bios: amend edp block based on intel_vbt_decode 2017-08-28 11:04:24 +03: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: Add SW_SYNC to our recommend testing Kconfig 2017-08-12 10:30:42 +01:00
Makefile drm/i915/guc: Rename intel_guc_loader.c to intel_guc_fw.c 2017-10-16 18:53:25 +03:00