linux_dsm_epyc7002/drivers/gpu/drm/i915
Brad Volkin 493018dcb1 drm/i915: Implement a framework for batch buffer pools
This adds a small module for managing a pool of batch buffers.
The only current use case is for the command parser, as described
in the kerneldoc in the patch. The code is simple, but separating
it out makes it easier to change the underlying algorithms and to
extend to future use cases should they arise.

The interface is simple: init to create an empty pool, fini to
clean it up, get to obtain a new buffer. Note that all buffers are
expected to be inactive before cleaning up the pool.

Locking is currently based on the caller holding the struct_mutex.
We already do that in the places where we will use the batch pool
for the command parser.

v2:
- s/BUG_ON/WARN_ON/ for locking assertions
- Remove the cap on pool size
- Switch from alloc/free to init/fini

v3:
- Idiomatic looping structure in _fini
- Correct handling of purged objects
- Don't return a buffer that's too much larger than needed

v4:
- Rebased to latest -nightly

v5:
- Remove _put() function and clean up comments to match

v6:
- Move purged check inside the loop (danvet, from v4 1/7 feedback)

v7:
- Use single list instead of two. (Chris W)
- s/active_list/cache_list
- Squashed in debug patches (Chris W)
  drm/i915: Add a batch pool debugfs file

  It provides some useful information about the buffers in
  the global command parser batch pool.

  v2: rebase on global pool instead of per-ring pools
  v3: rebase

  drm/i915: Add batch pool details to i915_gem_objects debugfs

  To better account for the potentially large memory consumption
  of the batch pool.

v8:
- Keep cache in LRU order (danvet, from v6 1/5 feedback)

Issue: VIZ-4719
Signed-off-by: Brad Volkin <bradley.d.volkin@intel.com>
Reviewed-By: Jon Bloomfield <jon.bloomfield@intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2014-12-16 10:39:08 +01:00
..
dvo_ch7xxx.c
dvo_ch7017.c
dvo_ivch.c
dvo_ns2501.c drm/i915: Check pixel clock in ns2501 mode_valid hook 2014-09-03 11:05:21 +02:00
dvo_sil164.c
dvo_tfp410.c
dvo.h
i915_cmd_parser.c drm/i915: Add MI_SET_APPID cmd to cmd parser tables 2014-12-10 17:47:21 +01:00
i915_debugfs.c drm/i915: Implement a framework for batch buffer pools 2014-12-16 10:39:08 +01:00
i915_dma.c drm/i915: Remove user pinning code 2014-12-03 09:35:11 +01:00
i915_drv.c drm/i915: Deal with video overlay on GPU reset 2014-12-03 09:35:24 +01:00
i915_drv.h drm/i915: Implement a framework for batch buffer pools 2014-12-16 10:39:08 +01:00
i915_gem_batch_pool.c drm/i915: Implement a framework for batch buffer pools 2014-12-16 10:39:08 +01:00
i915_gem_context.c drm/i915: Infrastructure for supporting different GGTT views per object 2014-12-15 11:25:04 +01:00
i915_gem_debug.c
i915_gem_dmabuf.c
i915_gem_evict.c drm/i915: fix another use-after-free in i915_gem_evict_everything 2014-09-19 14:41:16 +02:00
i915_gem_execbuffer.c drm/i915: Infrastructure for supporting different GGTT views per object 2014-12-15 11:25:04 +01:00
i915_gem_gtt.c drm/i915: Documentation for multiple GGTT views 2014-12-15 11:25:27 +01:00
i915_gem_gtt.h drm/i915: Infrastructure for supporting different GGTT views per object 2014-12-15 11:25:04 +01:00
i915_gem_render_state.c drm/i915: Remove obsolete seqno parameter from 'i915_add_request' 2014-12-03 09:35:19 +01:00
i915_gem_render_state.h drm/i915/bdw: Render state init for Execlists 2014-09-03 11:04:52 +02:00
i915_gem_stolen.c drm/i915: Move flags describing VMA mappings into the VMA 2014-11-04 14:04:51 +01:00
i915_gem_tiling.c drm/i915: Replace last_[rwf]_seqno with last_[rwf]_req 2014-12-03 09:35:14 +01:00
i915_gem_userptr.c drm/i915: Do not leak pages when freeing userptr objects 2014-09-29 15:31:01 +02:00
i915_gem.c drm/i915: Implement a framework for batch buffer pools 2014-12-16 10:39:08 +01:00
i915_gpu_error.c drm/i915: Infrastructure for supporting different GGTT views per object 2014-12-15 11:25:04 +01:00
i915_ioc32.c drm/i915: remove redundant #ifdef CONFIG_COMPAT 2014-10-24 16:34:07 +02:00
i915_irq.c drm/i915: Name the lrc irq handler correctly 2014-12-15 09:54:05 +01:00
i915_params.c drm/i915/bdw: Enable execlists by default where supported 2014-12-15 11:25:28 +01:00
i915_reg.h drm/i915: Engage the DP scramble reset for pipe C on CHV 2014-12-10 17:47:24 +01:00
i915_suspend.c drm/i915: Move FBC stuff to intel_fbc.c 2014-12-10 17:47:20 +01:00
i915_sysfs.c drm/i915: Do not export RC6p and RC6pp if they don't exist 2014-10-24 16:34:00 +02:00
i915_trace_points.c
i915_trace.h drm/i915: Additional request structure tracing 2014-12-06 01:46:27 +01:00
i915_ums.c drm/i915: don't save/restore backlight hist ctl registers 2014-11-14 10:29:28 +01:00
intel_acpi.c
intel_audio.c drm/i915/audio: fix monitor presence indication after disable 2014-11-18 11:17:37 +01:00
intel_bios.c drm/i915: Parsing LFP brightness control from VBT 2014-12-15 11:25:29 +01:00
intel_bios.h drm/i915: Parsing LFP brightness control from VBT 2014-12-15 11:25:29 +01:00
intel_crt.c drm/i915: Don't claim that we're resetting PCH ADPA register 2014-10-24 16:34:10 +02:00
intel_ddi.c drm/i915: Consolidate DDI clock reading out in a single function 2014-12-15 15:43:02 +01:00
intel_display.c drm/i915: Use BUILD_BUG if possible in the i915 WARN_ON 2014-12-15 09:54:22 +01:00
intel_dp_mst.c drm: Miscellaneous fixes for v3.19-rc1 2014-11-15 09:37:20 +10:00
intel_dp.c drm/i915: fix use after free during eDP encoder destroying 2014-12-16 10:38:55 +01:00
intel_drv.h drm/i915: Move FBC stuff to intel_fbc.c 2014-12-10 17:47:20 +01:00
intel_dsi_cmd.c drm/i915: Dual link needs Shutdown and Turn on packet for both ports 2014-12-05 15:28:26 +01:00
intel_dsi_cmd.h drm/i915: Added port as parameter to the functions which does read/write of DSI Controller 2014-12-04 12:21:58 +01:00
intel_dsi_panel_vbt.c drm/i915: Changes related to the sequence port no for 2014-12-15 09:54:22 +01:00
intel_dsi_pll.c drm/i915: Use DSI Pll1 for enabling MIPI DSI on Port C 2014-12-10 17:47:21 +01:00
intel_dsi.c drm/i915: Software workaround for getting the HW status of DSI Port C on BYT 2014-12-10 17:47:22 +01:00
intel_dsi.h drm/i915: Pixel Clock changes for DSI dual link 2014-12-05 15:28:20 +01:00
intel_dvo.c drm/i915: Don't call DVO mode_set hook on DPMS changes 2014-09-03 11:05:14 +02:00
intel_fbc.c drm/i915: Introduce FBC DocBook. 2014-12-10 17:47:23 +01:00
intel_fbdev.c drm/i915: Make intel_pin_and_fence_fb_obj take plane and framebuffer 2014-11-07 18:41:51 +01:00
intel_fifo_underrun.c drm/i915: kerneldoc for intel_fifo_underrun.c 2014-10-24 16:33:55 +02:00
intel_frontbuffer.c drm/i915: Introduce intel_psr.c 2014-11-17 19:12:28 +01:00
intel_hdmi.c drm/i915/chv: Enable AVI, SPD and HDMI infoframes for CHV. 2014-12-03 09:29:34 +01:00
intel_i2c.c
intel_lrc.c drm/i915/bdw: Enable execlists by default where supported 2014-12-15 11:25:28 +01:00
intel_lrc.h drm/i915: Name the lrc irq handler correctly 2014-12-15 09:54:05 +01:00
intel_lvds.c drm/i915: Pass the current pipe from eDP init to backlight setup 2014-11-14 10:29:20 +01:00
intel_modes.c
intel_opregion.c ACPI / i915: Update the condition to ignore firmware backlight change request 2014-09-30 01:11:18 +02:00
intel_overlay.c drm/i915: Deal with video overlay on GPU reset 2014-12-03 09:35:24 +01:00
intel_panel.c Linux 3.18-rc7 2014-12-02 10:58:33 +10:00
intel_pm.c drm/i915/skl: Correcting the flushing of pipe 2014-12-15 11:25:29 +01:00
intel_psr.c drm/i915: VLV/CHV PSR Software timer mode 2014-12-03 09:35:08 +01:00
intel_renderstate_gen6.c drm/i915: Add headers to the various render state 2014-12-10 17:47:23 +01:00
intel_renderstate_gen7.c drm/i915: Add headers to the various render state 2014-12-10 17:47:23 +01:00
intel_renderstate_gen8.c drm/i915: Add headers to the various render state 2014-12-10 17:47:23 +01:00
intel_renderstate_gen9.c drm/i915: Add headers to the various render state 2014-12-10 17:47:23 +01:00
intel_renderstate.h drm/i915 Add golden context support for Gen9 2014-11-04 14:04:55 +01:00
intel_ringbuffer.c drm/i915/bdw: Add WaForceEnableNonCoherent label 2014-12-10 17:47:27 +01:00
intel_ringbuffer.h drm/i915: s/init()/init_hw()/ in intel_engine_cs 2014-12-03 09:35:27 +01:00
intel_runtime_pm.c drm/i915: Fix short description of intel_display_power_is_enabled() 2014-12-03 09:35:12 +01:00
intel_sdvo_regs.h
intel_sdvo.c drm/i915: Don't destroy DRM properties in the driver 2014-10-31 18:38:17 +01:00
intel_sideband.c
intel_sprite.c drm/i915: Move FBC stuff to intel_fbc.c 2014-12-10 17:47:20 +01:00
intel_tv.c drm/i915: Clarify irq_lock locking, intel_tv_detect 2014-09-19 14:43:19 +02:00
intel_uncore.c drm/i915: Forcewake Register Range changes for CHV 2014-12-15 09:54:23 +01:00
Kconfig
Makefile drm/i915: Implement a framework for batch buffer pools 2014-12-16 10:39:08 +01:00