linux-stable/drivers/gpu/drm/i915
Chris Wilson 305bc234a8 drm/i915: Make i915_vma_pin() small and inline
Not only is i915_vma_pin() called for every single object on every single
execbuf, it is usually a simple increment as the VMA is already bound for
execution by the GPU. Rearrange the tests for unbound and pin_count
overflow so that we can do the increment and test very cheaply and
compact enough to inline the operation into execbuf. The trick used is
to note that we can check for an overflow bit (keeping space available
for it inside the flags) at the same time as checking the binding bits.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Link: http://patchwork.freedesktop.org/patch/msgid/1470324762-2545-17-git-send-email-chris@chris-wilson.co.uk
2016-08-04 20:20:00 +01:00
..
gvt drm/i915: gvt: Introduce the basic architecture of GVT-g 2016-06-17 20:35:06 +01:00
dvo.h
dvo_ch7xxx.c
dvo_ch7017.c
dvo_ivch.c
dvo_ns2501.c
dvo_sil164.c
dvo_tfp410.c
i915_cmd_parser.c drm/i915/cmdparser: Remove stray intel_engine_cs *ring 2016-07-27 16:23:05 +01:00
i915_debugfs.c drm/i915: Combine all i915_vma bitfields into a single set of flags 2016-08-04 20:19:59 +01:00
i915_drv.c drm/i915: Release vma when the handle is closed 2016-08-04 08:09:33 +01:00
i915_drv.h drm/i915: Start passing around i915_vma from execbuffer 2016-08-04 20:19:58 +01:00
i915_gem.c drm/i915: Make i915_vma_pin() small and inline 2016-08-04 20:20:00 +01:00
i915_gem.h
i915_gem_batch_pool.c drm/i915: Double check the active status on the batch pool 2016-08-04 20:19:50 +01:00
i915_gem_batch_pool.h drm/i915: Double check the active status on the batch pool 2016-08-04 20:19:50 +01:00
i915_gem_context.c drm/i915: Combine all i915_vma bitfields into a single set of flags 2016-08-04 20:19:59 +01:00
i915_gem_dmabuf.c drm/i915: Wrap drm_gem_object_reference in i915_gem_object_get 2016-07-20 13:40:11 +01:00
i915_gem_dmabuf.h drm/i915: Serialise presentation with imported dmabufs 2016-06-17 10:32:26 +01:00
i915_gem_evict.c drm/i915: Wrap vma->pin_count accessors with small inline helpers 2016-08-04 20:19:58 +01:00
i915_gem_execbuffer.c drm/i915: Combine all i915_vma bitfields into a single set of flags 2016-08-04 20:19:59 +01:00
i915_gem_fence.c drm/i915: Wrap vma->pin_count accessors with small inline helpers 2016-08-04 20:19:58 +01:00
i915_gem_gtt.c drm/i915: Combine all i915_vma bitfields into a single set of flags 2016-08-04 20:19:59 +01:00
i915_gem_gtt.h drm/i915: Make i915_vma_pin() small and inline 2016-08-04 20:20:00 +01:00
i915_gem_render_state.c drm/i915: i915_vma_move_to_active prep patch 2016-08-04 08:09:31 +01:00
i915_gem_render_state.h drm/i915: Remove duplicate golden render state init from execlists 2016-08-02 22:58:30 +01:00
i915_gem_request.c drm/i915: Remove request retirement before each batch 2016-08-04 20:19:51 +01:00
i915_gem_request.h drm/i915: s/__i915_wait_request/i915_wait_request/ 2016-08-04 08:09:29 +01:00
i915_gem_shrinker.c drm/i915: Combine all i915_vma bitfields into a single set of flags 2016-08-04 20:19:59 +01:00
i915_gem_stolen.c drm/i915: Combine all i915_vma bitfields into a single set of flags 2016-08-04 20:19:59 +01:00
i915_gem_tiling.c drm/i915: Update i915_gem_get_ggtt_size/_alignment to use drm_i915_private 2016-08-04 20:19:56 +01:00
i915_gem_userptr.c drm/i915: s/__i915_wait_request/i915_wait_request/ 2016-08-04 08:09:29 +01:00
i915_gpu_error.c drm/i915: Combine all i915_vma bitfields into a single set of flags 2016-08-04 20:19:59 +01:00
i915_guc_reg.h
i915_guc_submission.c drm/i915/lrc: Update function names to match request flow 2016-08-02 22:58:27 +01:00
i915_ioc32.c
i915_irq.c drm/i915: Rename struct intel_ringbuffer to struct intel_ring 2016-08-02 22:58:16 +01:00
i915_params.c drm/i915/guc: Revert "drm/i915/guc: enable GuC loading & submission by default" 2016-07-19 15:45:21 -07:00
i915_params.h drm/i915: gvt: Introduce the basic architecture of GVT-g 2016-06-17 20:35:06 +01:00
i915_pci.c drm/i915: Add missing ring_mask to Pineview 2016-07-29 16:22:42 +01:00
i915_pvinfo.h drm/i915: Use offsetof() to calculate the offset of members in PVINFO page 2016-06-17 19:44:25 +01:00
i915_reg.h drm/i915: Fix use of engine->index for register offset 2016-08-04 09:20:32 +01:00
i915_suspend.c drm/i915: Mass convert dev->dev_private to to_i915(dev) 2016-07-04 12:54:07 +01:00
i915_sysfs.c drm/i915: Fix up some stray to_i915(dev) after a recent merge 2016-07-28 07:28:17 +01:00
i915_trace.h drm/i915: Remove surplus drm_device parameter to i915_gem_evict_something() 2016-08-04 20:19:50 +01:00
i915_trace_points.c
i915_vgpu.c drm/i915: Update missing kerneldoc 2016-07-19 10:34:24 +02:00
i915_vgpu.h drm/i915: Fold vGPU active check into inner functions 2016-06-17 19:44:29 +01:00
intel_acpi.c
intel_atomic.c drm: Consolidate plane arrays in drm_atomic_state 2016-06-02 17:20:25 +02:00
intel_atomic_plane.c drm/i915: Revert async unpin and nonblocking atomic commit 2016-06-01 09:46:46 +02:00
intel_audio.c drm/i915: Acquire audio powerwell for HD-Audio registers 2016-08-04 18:17:20 +01:00
intel_bios.c drm/i915: Convert dev_priv->dev backpointers to dev_priv->drm 2016-07-05 11:58:45 +01:00
intel_bios.h
intel_breadcrumbs.c drm/i915: Reduce breadcrumb lock coverage for intel_engine_enable_signaling() 2016-07-26 13:00:58 +01:00
intel_color.c drm/i915: Kill has_dsi_encoder 2016-07-07 13:10:20 +03:00
intel_crt.c drm/i915/vlv: Disable HPD in valleyview_crt_detect_hotplug() 2016-07-14 22:06:11 +02:00
intel_csr.c drm/i915: Remove misleading CSR firmware loading docs 2016-07-21 22:23:04 +02:00
intel_ddi.c drm/i915: Track active streams also for DP SST 2016-08-04 15:56:39 +03:00
intel_device_info.c drm/i915: Split out runtime configuration of device info to its own file 2016-07-05 11:53:27 +01:00
intel_display.c drm/i915: Reject mixing MST and SST/HDMI on the same digital port 2016-08-04 15:54:13 +03:00
intel_dp.c drm/i915: Don't try to ack sink irqs when there are none 2016-08-04 16:00:21 +03:00
intel_dp_aux_backlight.c
intel_dp_link_training.c drm/i915: Revert DisplayPort fast link training feature 2016-06-20 12:37:07 +03:00
intel_dp_mst.c drm/i915: Track active streams also for DP SST 2016-08-04 15:56:39 +03:00
intel_dpio_phy.c drm/i915: Mass convert dev->dev_private to to_i915(dev) 2016-07-04 12:54:07 +01:00
intel_dpll_mgr.c drm/i915: s/INTEL_OUTPUT_DISPLAYPORT/INTEL_OUTPUT_DP/ 2016-07-07 13:10:16 +03:00
intel_dpll_mgr.h
intel_drv.h drm/i915: Track active streams also for DP SST 2016-08-04 15:56:39 +03:00
intel_dsi.c drm/i915: Kill has_dsi_encoder 2016-07-07 13:10:20 +03:00
intel_dsi.h
intel_dsi_dcs_backlight.c drm/i915: Mass convert dev->dev_private to to_i915(dev) 2016-07-04 12:54:07 +01:00
intel_dsi_panel_vbt.c drm/i915: Mass convert dev->dev_private to to_i915(dev) 2016-07-04 12:54:07 +01:00
intel_dsi_pll.c drm/i915: Mass convert dev->dev_private to to_i915(dev) 2016-07-04 12:54:07 +01:00
intel_dvo.c drm/i915: Mass convert dev->dev_private to to_i915(dev) 2016-07-04 12:54:07 +01:00
intel_engine_cs.c drm/i915: Double check the active status on the batch pool 2016-08-04 20:19:50 +01:00
intel_fbc.c drm/i915/fbc: FBC causes display flicker when VT-d is enabled on Skylake 2016-08-04 10:28:05 +01:00
intel_fbdev.c drm/i915: Treat ringbuffer writes as write to normal memory 2016-07-20 13:40:14 +01:00
intel_fifo_underrun.c drm/i915: Convert dev_priv->dev backpointers to dev_priv->drm 2016-07-05 11:58:45 +01:00
intel_frontbuffer.c
intel_guc.h drm/i915: Unify request submission 2016-08-02 22:58:26 +01:00
intel_guc_fwif.h
intel_guc_loader.c drm/i915:gen9: restrict WaC6DisallowByGfxPause 2016-07-21 14:48:00 +01:00
intel_gvt.c drm/i915/gvt: Mark i915.enable_gvt as false if loading fails 2016-06-21 12:40:13 +01:00
intel_gvt.h drm/i915: gvt: Introduce the basic architecture of GVT-g 2016-06-17 20:35:06 +01:00
intel_hdmi.c drm/i915: Simplify hdmi_12bpc_possible() 2016-07-07 13:10:24 +03:00
intel_hotplug.c drm/i915: Update missing kerneldoc 2016-07-19 10:34:24 +02:00
intel_i2c.c drm/i915: Convert dev_priv->dev backpointers to dev_priv->drm 2016-07-05 11:58:45 +01:00
intel_lrc.c drm/i915: Move the common engine cleanup to intel_engine_cs.c 2016-08-03 14:01:12 +01:00
intel_lrc.h drm/i915: Unify legacy/execlists submit_execbuf callbacks 2016-08-02 22:58:31 +01:00
intel_lvds.c drm/i915: Mass convert dev->dev_private to to_i915(dev) 2016-07-04 12:54:07 +01:00
intel_mocs.c drm/i915: Rename struct intel_ringbuffer to struct intel_ring 2016-08-02 22:58:16 +01:00
intel_mocs.h drm/i915: rename 'ring' where it refers to an engine or engine_id 2016-07-21 09:59:41 +01:00
intel_modes.c drm/i915: Mass convert dev->dev_private to to_i915(dev) 2016-07-04 12:54:07 +01:00
intel_opregion.c drm/i915: Ignore panel type from OpRegion on SKL 2016-07-14 16:05:40 +03:00
intel_overlay.c drm/i915: Convert intel_overlay to request tracking 2016-08-04 08:09:26 +01:00
intel_panel.c drm/i915: Introduce Kabypoint PCH for Kabylake H/DT. 2016-07-07 10:01:37 -07:00
intel_pm.c drm/i915: Clean up the extra RPM ref on CHV with i915.enable_rc6=0 2016-08-03 18:28:09 +03:00
intel_psr.c drm/i915: Mass convert dev->dev_private to to_i915(dev) 2016-07-04 12:54:07 +01:00
intel_renderstate.h drm/i915: Remove duplicate golden render state init from execlists 2016-08-02 22:58:30 +01:00
intel_renderstate_gen6.c
intel_renderstate_gen7.c
intel_renderstate_gen8.c
intel_renderstate_gen9.c
intel_ringbuffer.c drm/i915: s/__i915_wait_request/i915_wait_request/ 2016-08-04 08:09:29 +01:00
intel_ringbuffer.h drm/i915: Track requests inside each intel_ring 2016-08-04 08:09:26 +01:00
intel_runtime_pm.c drm/i915: Enable polling when we don't have hpd 2016-07-14 22:06:11 +02:00
intel_sdvo.c drm/i915: Convert dev_priv->dev backpointers to dev_priv->drm 2016-07-05 11:58:45 +01:00
intel_sdvo_regs.h
intel_sideband.c drm/i915: Convert wait_for(I915_READ(reg)) to intel_wait_for_register() 2016-06-30 15:42:33 +01:00
intel_sprite.c drm/i915: Mass convert dev->dev_private to to_i915(dev) 2016-07-04 12:54:07 +01:00
intel_tv.c drm/i915: Mass convert dev->dev_private to to_i915(dev) 2016-07-04 12:54:07 +01:00
intel_uncore.c Revert "drm/i915: Enable RC6 immediately" 2016-07-21 21:43:19 +01:00
intel_vbt_defs.h drm/i915: Extract physical display dimensions from VBT 2016-06-02 14:33:09 +03:00
Kconfig drm/i915: gvt: Introduce the basic architecture of GVT-g 2016-06-17 20:35:06 +01:00
Kconfig.debug drm/i915: Select DRM_VGEM for igt 2016-07-10 13:22:39 +01:00
Makefile drm/i915: Refactor activity tracking for requests 2016-08-04 08:09:25 +01:00