linux_dsm_epyc7002/drivers/gpu/drm/i915
Chris Wilson 73db04cfa8 drm/i915: Move releasing of the GEM request from free to retire/cancel
If we move the release of the GEM request (i.e. decoupling it from the
various lists used for client and context tracking) after it is complete
(either by the GPU retiring the request, or by the caller cancelling the
request), we can remove the requirement that the final unreference of
the GEM request need to be under the struct_mutex.

The careful reader may notice that one or two impossible NULL pointer
tests are dropped for readability. These pointers cannot be NULL since
they are assigned during request construction and never unset.

v2,v3: Rebalance execlists by moving the context unpinning.
v4: Rebase onto -nightly
v5: Avoid trying to rebalance execlist/GuC context pinning, leave that
to the next step

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Reviewed-by: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Link: http://patchwork.freedesktop.org/patch/msgid/1461833819-3991-21-git-send-email-chris@chris-wilson.co.uk
2016-04-28 12:17:32 +01:00
..
dvo_ch7xxx.c
dvo_ch7017.c
dvo_ivch.c
dvo_ns2501.c
dvo_sil164.c
dvo_tfp410.c
dvo.h
i915_cmd_parser.c
i915_debugfs.c drm/i915: Refactor execlists default context pinning 2016-04-28 12:17:32 +01:00
i915_dma.c drm/i915: Update RAWCLK_FREQ register on VLV/CHV 2016-04-27 20:38:57 +03:00
i915_drv.c drm/i915/bxt: Enable DC5 during runtime resume 2016-04-22 15:12:05 +03:00
i915_drv.h drm/i915: Move releasing of the GEM request from free to retire/cancel 2016-04-28 12:17:32 +01:00
i915_gem_batch_pool.c drm/i915: Propagate error from drm_gem_object_init() 2016-04-28 12:28:58 +03:00
i915_gem_batch_pool.h
i915_gem_context.c drm/i915: Assign every HW context a unique ID 2016-04-28 12:17:32 +01:00
i915_gem_debug.c
i915_gem_dmabuf.c Linux 4.6-rc3 2016-04-11 19:25:13 +02:00
i915_gem_evict.c
i915_gem_execbuffer.c drm/i915: Move the magical deferred context allocation into the request 2016-04-28 12:17:32 +01:00
i915_gem_fence.c
i915_gem_gtt.c drm/i915: Rearrange switch_context to load the aliasing ppgtt on first use 2016-04-28 12:17:32 +01:00
i915_gem_gtt.h drm/i915: Rearrange switch_context to load the aliasing ppgtt on first use 2016-04-28 12:17:32 +01:00
i915_gem_render_state.c drm/i915: Propagate error from drm_gem_object_init() 2016-04-28 12:28:58 +03:00
i915_gem_render_state.h
i915_gem_shrinker.c drm/i915: Move ioremap_wc tracking onto VMA 2016-04-28 12:17:32 +01:00
i915_gem_stolen.c drm/i915: Canonicalize stolen memory calculations 2016-04-25 13:30:32 +03:00
i915_gem_tiling.c
i915_gem_userptr.c drm/i915: Prevent leaking of -EIO from i915_wait_request() 2016-04-14 10:45:40 +01:00
i915_gem.c drm/i915: Move releasing of the GEM request from free to retire/cancel 2016-04-28 12:17:32 +01:00
i915_gem.h drm/i915: Add GEM debugging Kconfig option 2016-04-14 10:45:40 +01:00
i915_gpu_error.c drm/i915: Separate out the seqno-barrier from engine->get_seqno 2016-04-09 12:09:05 +01:00
i915_guc_reg.h drm/i915/guc: always reset GuC before loading firmware 2016-04-05 13:29:24 +01:00
i915_guc_submission.c drm/i915: Propagate error from drm_gem_object_init() 2016-04-28 12:28:58 +03:00
i915_ioc32.c
i915_irq.c drm/i915/gen8+: Do not enable DPF interrupt since the handler does not exist 2016-04-20 09:59:16 +01:00
i915_params.c drm/i915: Add Backlight Control using DPCD for eDP connectors (v9) 2016-04-26 15:17:54 +03:00
i915_params.h drm/i915: Add Backlight Control using DPCD for eDP connectors (v9) 2016-04-26 15:17:54 +03:00
i915_reg.h drm/i915: Update RAWCLK_FREQ register on VLV/CHV 2016-04-27 20:38:57 +03:00
i915_suspend.c
i915_sysfs.c
i915_trace_points.c
i915_trace.h drm/i915: Separate out the seqno-barrier from engine->get_seqno 2016-04-09 12:09:05 +01:00
i915_vgpu.c
i915_vgpu.h
intel_acpi.c
intel_atomic_plane.c
intel_atomic.c
intel_audio.c drm/i915: Do not use {HAS_*, IS_*, INTEL_INFO}(dev_priv->dev) 2016-04-07 14:50:26 +03:00
intel_bios.c drm/i915: Parsing the PWM cntrl and CABC ON/OFF fields in VBT 2016-04-26 15:49:27 +03:00
intel_bios.h drm/i915: Parsing the PWM cntrl and CABC ON/OFF fields in VBT 2016-04-26 15:49:27 +03:00
intel_color.c
intel_crt.c
intel_csr.c drm/i915/gen9: Fix runtime PM refcounting in case DMC firmware isn't loaded 2016-04-19 12:33:48 +03:00
intel_ddi.c drm/i915/bxt: Force reprogramming a PHY with invalid HW state 2016-04-22 16:32:59 +03:00
intel_display.c drm/i915: Move releasing of the GEM request from free to retire/cancel 2016-04-28 12:17:32 +01:00
intel_dp_aux_backlight.c drm/i915: Add Backlight Control using DPCD for eDP connectors (v9) 2016-04-26 15:17:54 +03:00
intel_dp_link_training.c
intel_dp_mst.c
intel_dp.c drm/i915: Read eDP Display control capability registers 2016-04-26 15:04:06 +03:00
intel_dpll_mgr.c drm/i915/bxt: PORT_PLL_REF_SEL bit should be set for all BXT variations 2016-04-15 16:10:59 +03:00
intel_dpll_mgr.h
intel_drv.h drm/i915/fbdev: Call intel_unpin_fb_obj() on release 2016-04-28 12:17:32 +01:00
intel_dsi_panel_vbt.c drm/i915/dsi: add support for gpio elements on CHV 2016-04-27 09:48:17 +03:00
intel_dsi_pll.c drm/i915: Eliminate {vlv,bxt}_configure_dsi_pll() 2016-04-15 16:25:27 +03:00
intel_dsi.c drm/i915: Unify VLV/CHV DPOunit clock gating disable/enable 2016-04-27 20:31:55 +03:00
intel_dsi.h drm/i915: Compute DSI PLL parameters during .compute_config() 2016-04-15 16:25:27 +03:00
intel_dvo.c
intel_fbc.c
intel_fbdev.c drm/i915: Move ioremap_wc tracking onto VMA 2016-04-28 12:17:32 +01:00
intel_fifo_underrun.c drm/i915: Do not use {HAS_*, IS_*, INTEL_INFO}(dev_priv->dev) 2016-04-07 14:50:26 +03:00
intel_frontbuffer.c
intel_guc_fwif.h
intel_guc_loader.c drm/i915/guc: always reset GuC before loading firmware 2016-04-05 13:29:24 +01:00
intel_guc.h drm/i915/guc: local optimisations and updating comments 2016-04-20 14:46:14 +01:00
intel_hdmi.c drm/i915: Fake HDMI live status 2016-04-22 20:24:48 +03:00
intel_hotplug.c
intel_i2c.c drm/i915: Make GMBUS timeout message DRM_DEBUG_KMS 2016-04-12 13:23:17 +03:00
intel_lrc.c drm/i915: Move the magical deferred context allocation into the request 2016-04-28 12:17:32 +01:00
intel_lrc.h drm/i915: Move the magical deferred context allocation into the request 2016-04-28 12:17:32 +01:00
intel_lvds.c
intel_mocs.c drm/i915: Unify intel_ring_begin() 2016-04-28 12:17:32 +01:00
intel_mocs.h drm/i915/mocs: Program MOCS for all engines on init 2016-04-14 10:45:40 +01:00
intel_modes.c
intel_opregion.c drm/i915: Clean up PCI config register handling 2016-04-19 17:57:33 +03:00
intel_overlay.c io-mapping: Specify mapping size for io_mapping_map_wc() 2016-04-28 12:17:32 +01:00
intel_panel.c drm/i915: Add Backlight Control using DPCD for eDP connectors (v9) 2016-04-26 15:17:54 +03:00
intel_pm.c drm/i915: Move releasing of the GEM request from free to retire/cancel 2016-04-28 12:17:32 +01:00
intel_psr.c drm/i915: Do not use {HAS_*, IS_*, INTEL_INFO}(dev_priv->dev) 2016-04-07 14:50:26 +03:00
intel_renderstate_gen6.c
intel_renderstate_gen7.c
intel_renderstate_gen8.c
intel_renderstate_gen9.c
intel_renderstate.h
intel_ringbuffer.c drm/i915: Preallocate enough space for the average request 2016-04-28 12:17:32 +01:00
intel_ringbuffer.h drm/i915: Remove the identical implementations of request space reservation 2016-04-28 12:17:32 +01:00
intel_runtime_pm.c drm/i915: Update RAWCLK_FREQ register on VLV/CHV 2016-04-27 20:38:57 +03:00
intel_sdvo_regs.h
intel_sdvo.c
intel_sideband.c
intel_sprite.c drm/i915: Fix plane init failure paths 2016-04-01 23:24:21 +03:00
intel_tv.c
intel_uncore.c drm/i915: Use fw_domains_put_with_fifo() on HSW 2016-04-14 15:02:16 +03:00
intel_vbt_defs.h drm/i915: Update VBT fields for child devices 2016-04-06 14:10:15 +03:00
Kconfig
Kconfig.debug drm/i915: Add GEM debugging Kconfig option 2016-04-14 10:45:40 +01:00
Makefile drm/i915: Add Backlight Control using DPCD for eDP connectors (v9) 2016-04-26 15:17:54 +03:00