linux/drivers/gpu/drm/i915
Chris Wilson ee286370d6 drm/i915: Cache last obj->pages location for i915_gem_object_get_page()
The biggest user of i915_gem_object_get_page() is the relocation
processing during execbuffer. Typically userspace passes in a set of
relocations in sorted order. Sadly, we alternate between relocations
increasing from the start of the buffers, and relocations decreasing
from the end. However the majority of consecutive lookups will still be
in the same page. We could cache the start of the last sg chain, however
for most callers, the entire sgl is inside a single chain and so we see
no improve from the extra layer of caching.

v2: Avoid the double increment inside unlikely()

References: https://bugs.freedesktop.org/show_bug.cgi?id=88308
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: John Harrison <John.C.Harrison@Intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2015-04-10 08:56:00 +02:00
..
dvo_ch7xxx.c
dvo_ch7017.c
dvo_ivch.c Enabled dithering in the intel VCH DVO for 18bpp pipelines. 2015-03-30 16:39:31 +02:00
dvo_ns2501.c
dvo_sil164.c
dvo_tfp410.c
dvo.h
i915_cmd_parser.c drm/i915: Fix vmap_batch page iterator overrun 2015-03-17 22:30:31 +01:00
i915_debugfs.c drm/i915: add i915 specific connector debugfs file for DPCD 2015-04-07 10:27:28 +02:00
i915_dma.c drm/i915: Rip out GET_SPRITE_COLORKEY ioctl 2015-03-27 09:08:04 +01:00
i915_drv.c drm/i915/chv: Remove Wait for a previous gfx force-off 2015-03-31 15:32:23 +02:00
i915_drv.h drm/i915: Cache last obj->pages location for i915_gem_object_get_page() 2015-04-10 08:56:00 +02:00
i915_gem_batch_pool.c
i915_gem_context.c drm/i915: Initialize all contexts 2015-03-20 11:48:19 +01:00
i915_gem_debug.c
i915_gem_dmabuf.c
i915_gem_evict.c drm/i915: kerneldoc for i915_gem_shrinker.c 2015-03-20 11:48:16 +01:00
i915_gem_execbuffer.c drm/i915: Rename 'do_execbuf' to 'execbuf_submit' 2015-04-01 07:53:41 +02:00
i915_gem_gtt.c drm/i915: Compare GGTT view structs instead of types 2015-03-27 15:05:22 +01:00
i915_gem_gtt.h drm/i915: Compare GGTT view structs instead of types 2015-03-27 15:05:22 +01:00
i915_gem_render_state.c
i915_gem_render_state.h
i915_gem_shrinker.c drm/i915: kerneldoc for i915_gem_shrinker.c 2015-03-20 11:48:16 +01:00
i915_gem_stolen.c Linux 4.0-rc3 2015-03-09 19:58:30 +10:00
i915_gem_tiling.c drm/i915: Check obj->vma_list under the struct_mutex 2015-02-24 15:30:42 +02:00
i915_gem_userptr.c drm/i915: Prevent use-after-free in invalidate_range_start callback 2015-02-05 16:31:30 +02:00
i915_gem.c drm/i915: Cache last obj->pages location for i915_gem_object_get_page() 2015-04-10 08:56:00 +02:00
i915_gpu_error.c drm/i915: Add fault address to error state for gen8 and gen9 2015-03-25 18:23:44 +01:00
i915_ioc32.c
i915_irq.c drm/i915: move clearing of RPS interrupt bits from disable to reset time 2015-03-24 10:14:48 +01:00
i915_params.c drm/i915: Add module param to test the load detect code 2015-03-27 11:22:52 +01:00
i915_reg.h drm/i915/skl: Implement WaDisableVFUnitClockGating 2015-04-10 08:55:59 +02:00
i915_suspend.c drm/i915: Remove regfile code&data for UMS suspend/resume 2015-02-27 18:10:39 +01:00
i915_sysfs.c drm/i915/skl: Updated the act_freq_mhz_show sysfs function 2015-03-17 22:30:25 +01:00
i915_trace_points.c
i915_trace.h drm/i915: Add dynamic page trace events 2015-03-27 09:25:44 +01:00
i915_vgpu.c drm/i915: Adds graphic address space ballooning logic 2015-02-13 23:28:23 +01:00
i915_vgpu.h drm/i915: Add ULL postfix to VGT_MAGIC constant 2015-03-17 22:30:18 +01:00
intel_acpi.c
intel_atomic_plane.c drm/i915: Rotation property is now handled in DRM core 2015-03-10 09:59:33 +01:00
intel_atomic.c drm/i915: Set crtc backpointer when duplicating crtc state 2015-03-17 22:29:53 +01:00
intel_audio.c drm/i915: Convert the ddi cdclk code to get_display_clock_speed 2015-03-31 17:28:58 +02:00
intel_bios.c drm/i915: base gmbus pin validity check on the gmbus pin map array 2015-04-01 14:11:56 +02:00
intel_bios.h drm/i915/skl: Support for edp low_vswing param in vbt 2015-02-25 16:06:00 +01:00
intel_crt.c drm/i915: rename GMBUS_PORT_* macros as GMBUS_PIN_* 2015-04-01 14:11:32 +02:00
intel_ddi.c drm/i915: Convert the ddi cdclk code to get_display_clock_speed 2015-03-31 17:28:58 +02:00
intel_display.c drm/i915: Don't use staged config in check_encoder_cloning() 2015-04-10 08:55:57 +02:00
intel_dp_mst.c drm/i915: Don't use staged config in intel_mst_pre_enable_dp() 2015-04-10 08:55:57 +02:00
intel_dp.c drm/i915: add i915 specific connector debugfs file for DPCD 2015-04-07 10:27:28 +02:00
intel_drv.h drm/i915: Remove intel_crtc->new_config 2015-04-10 08:55:56 +02:00
intel_dsi_panel_vbt.c drm/i915/dsi: remove intel_dsi_cmd.c and the unused functions therein 2015-01-29 16:57:14 +01:00
intel_dsi_pll.c
intel_dsi.c drm/i915: Implement connector state duplication 2015-03-26 16:28:21 +01:00
intel_dsi.h drm/i915/dsi: add drm mipi dsi host support 2015-01-29 16:51:39 +01:00
intel_dvo.c drm/i915: base gmbus pin validity check on the gmbus pin map array 2015-04-01 14:11:56 +02:00
intel_fbc.c drm/i915: kill i915.powersave 2015-03-26 13:04:23 +01:00
intel_fbdev.c drm/i915: Pass in plane state when (un)pinning frame buffers 2015-03-23 15:00:57 +01:00
intel_fifo_underrun.c drm/i915: Check for driver readyness before handling an underrun interrupt 2015-03-04 10:04:19 +02:00
intel_frontbuffer.c drm/i915: kill i915.powersave 2015-03-26 13:04:23 +01:00
intel_hdmi.c drm/i915: rename GMBUS_PORT_* macros as GMBUS_PIN_* 2015-04-01 14:11:32 +02:00
intel_i2c.c drm/i915: base gmbus pin validity check on the gmbus pin map array 2015-04-01 14:11:56 +02:00
intel_lrc.c drm/i915: Do not set L3-LLC Coherency bit in ctx descriptor 2015-04-10 08:55:58 +02:00
intel_lrc.h drm/i915: Move common request allocation code into a common function 2015-04-01 07:54:30 +02:00
intel_lvds.c drm/i915: base gmbus pin validity check on the gmbus pin map array 2015-04-01 14:11:56 +02:00
intel_modes.c
intel_opregion.c drm/i915: Remove DRIVER_MODESET checks from modeset code 2015-02-27 18:10:53 +01:00
intel_overlay.c drm/i915: Allow disabling the destination colorkey for overlay 2015-04-10 08:55:54 +02:00
intel_panel.c Merge branch 'drm-next' of git://people.freedesktop.org/~airlied/linux 2015-02-16 15:48:00 -08:00
intel_pm.c drm/i915/skl: Implement WaDisableVFUnitClockGating 2015-04-10 08:55:59 +02:00
intel_psr.c drm/i915/skl: Enabling PSR2 SU with frame sync 2015-04-07 10:06:38 +02: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/bdw: WaProgramL3SqcReg1Default 2015-04-07 10:25:58 +02:00
intel_ringbuffer.h drm/i915: Move common request allocation code into a common function 2015-04-01 07:54:30 +02:00
intel_runtime_pm.c drm/i915: Spelling s/auxilliary/auxiliary/ 2015-03-17 22:30:12 +01:00
intel_sdvo_regs.h
intel_sdvo.c drm/i915: base gmbus pin validity check on the gmbus pin map array 2015-04-01 14:11:56 +02:00
intel_sideband.c drm/i915: Correct the IOSF Dev_FN field for IOSF transfers 2015-02-09 14:26:19 +02:00
intel_sprite.c drm/i915: Rip out GET_SPRITE_COLORKEY ioctl 2015-03-27 09:08:04 +01:00
intel_tv.c drm/i915: Implement connector state duplication 2015-03-26 16:28:21 +01:00
intel_uncore.c drm/i915: Disable the mmio.debug WARN after it fires 2015-03-17 22:30:00 +01:00
Kconfig drm/i915/dsi: add drm mipi dsi host support 2015-01-29 16:51:39 +01:00
Makefile drm/i915: Extract i915_gem_shrinker.c 2015-03-20 11:48:15 +01:00