linux/drivers/gpu/drm/i915
Ben Widawsky ca191b1313 drm/i915: mm_list is per VMA
formerly: "drm/i915: Create VMAs (part 5) - move mm_list"

The mm_list is used for the active/inactive LRUs. Since those LRUs are
per address space, the link should be per VMx .

Because we'll only ever have 1 VMA before this point, it's not incorrect
to defer this change until this point in the patch series, and doing it
here makes the change much easier to understand.

Shamelessly manipulated out of Daniel:
"active/inactive stuff is used by eviction when we run out of address
space, so needs to be per-vma and per-address space. Bound/unbound otoh
is used by the shrinker which only cares about the amount of memory used
and not one bit about in which address space this memory is all used in.
Of course to actual kick out an object we need to unbind it from every
address space, but for that we have the per-object list of vmas."

v2: only bump GGTT LRU in i915_gem_object_set_to_gtt_domain (Chris)

v3: Moved earlier in the series

v4: Add dropped message from v3

Signed-off-by: Ben Widawsky <ben@bwidawsk.net>
[danvet: Frob patch to apply and use vma->node.size directly as
discused with Ben. Also drop a needles BUG_ON before move_to_inactive,
the function itself has the same check.]
[danvet 2nd: Rebase on top of the lost "drm/i915: Cleanup more of VMA
in destroy", specifically unlink the vma from the mm_list in
vma_unbind (to keep it symmetric with bind_to_vm) instead of
vma_destroy.]
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2013-08-08 14:06:58 +02:00
..
Makefile drm/i915: Colocate all GT access routines in the same file 2013-07-25 15:21:50 +02:00
dvo.h Merge branch 'drm-next' of git://people.freedesktop.org/~airlied/linux 2012-10-03 23:29:23 -07:00
dvo_ch7xxx.c drm/i915: dvo_ch7xxx: fix vsync polarity setting 2013-07-25 16:10:22 +02:00
dvo_ch7017.c drm/i915/dvo: implement get_hw_state 2012-09-06 07:58:52 +02:00
dvo_ivch.c drm/i915/dvo: implement get_hw_state 2012-09-06 07:58:52 +02:00
dvo_ns2501.c drm/i915/dvo: implement get_hw_state 2012-09-06 07:58:52 +02:00
dvo_sil164.c drm/i915/dvo: implement get_hw_state 2012-09-06 07:58:52 +02:00
dvo_tfp410.c drm/i915/dvo: implement get_hw_state 2012-09-06 07:58:52 +02:00
i915_debugfs.c drm/i915: mm_list is per VMA 2013-08-08 14:06:58 +02:00
i915_dma.c drm/i915: Create an init vm 2013-08-05 19:04:07 +02:00
i915_drv.c drm/i915: Colocate all GT access routines in the same file 2013-07-25 15:21:50 +02:00
i915_drv.h drm/i915: mm_list is per VMA 2013-08-08 14:06:58 +02:00
i915_gem.c drm/i915: mm_list is per VMA 2013-08-08 14:06:58 +02:00
i915_gem_context.c drm/i915: mm_list is per VMA 2013-08-08 14:06:58 +02:00
i915_gem_debug.c drm/i915: Move active/inactive lists to new mm 2013-07-17 22:24:32 +02:00
i915_gem_dmabuf.c drm/i915: fix dmabuf vmap support 2013-05-01 16:09:31 +10:00
i915_gem_evict.c drm/i915: mm_list is per VMA 2013-08-08 14:06:58 +02:00
i915_gem_execbuffer.c drm/i915: mm_list is per VMA 2013-08-08 14:06:58 +02:00
i915_gem_gtt.c drm/i915: Rename I915_CACHE_MLC_LLC to L3_LLC for Ivybridge 2013-08-06 16:35:30 +02:00
i915_gem_stolen.c drm/i915: mm_list is per VMA 2013-08-08 14:06:58 +02:00
i915_gem_tiling.c drm/i915: plumb VM into bind/unbind code 2013-08-08 14:04:20 +02:00
i915_gpu_error.c drm/i915: mm_list is per VMA 2013-08-08 14:06:58 +02:00
i915_ioc32.c UAPI: (Scripted) Convert #include "..." to #include <path/...> in drivers/gpu/ 2012-10-02 18:01:07 +01:00
i915_irq.c drm/i915: Add messages useful for HPD storm detection debugging (v2) 2013-07-26 19:43:48 +02:00
i915_reg.h drm/i915: Use the watermark latency values from dev_priv for ILK/SNB/IVB too 2013-08-05 19:04:17 +02:00
i915_suspend.c Linux 3.10 2013-07-18 12:03:29 +02:00
i915_sysfs.c drm/i915: add error_state sysfs entry 2013-07-01 19:39:31 +02:00
i915_trace.h drm/i915: plumb VM into bind/unbind code 2013-08-08 14:04:20 +02:00
i915_trace_points.c drm/i915: [sparse] trivial sparse fixes 2012-04-18 10:34:49 +02:00
i915_ums.c drm/i915: scrap register address storage 2013-06-10 19:54:14 +02:00
intel_acpi.c i915: fix ACPI _DSM warning 2013-08-05 19:04:05 +02:00
intel_bios.c drm/i915: Organize VBT stuff inside drm_i915_private 2013-05-10 21:56:46 +02:00
intel_bios.h drm/i915: set CPT FDI RX polarity bits based on VBT 2013-04-18 09:43:31 +02:00
intel_crt.c drm/i915/crt: use native encoder->mode_set callback 2013-08-04 21:25:23 +02:00
intel_ddi.c drm/i915: remove use_fdi_mode argument from intel_prepare_ddi_buffers 2013-08-06 08:33:40 +02:00
intel_display.c drm/i915: Export intel_framebuffer_fini 2013-08-06 20:08:50 +02:00
intel_dp.c drm/i915: rearrange vlv dp enable and pre_enable callbacks 2013-08-05 19:04:03 +02:00
intel_drv.h drm/i915: Remove the now obsolete infoframe definitions 2013-08-08 14:04:49 +02:00
intel_dvo.c drm/i915/dvo: use native encoder ->mode_set callback 2013-08-04 21:25:21 +02:00
intel_fb.c drm/i915: Export intel_framebuffer_fini 2013-08-06 20:08:50 +02:00
intel_hdmi.c drm/i915/hmdi: Rename set_infoframe() to write_infoframe() 2013-08-08 14:04:51 +02:00
intel_i2c.c drm/i915: avoid premature DP AUX timeouts 2013-05-22 13:51:26 +02:00
intel_lvds.c drm/i915/lvds: use the native encoder ->mode_set callback 2013-08-04 21:25:25 +02:00
intel_modes.c drm/i915: Add "Automatic" mode for the "Broadcast RGB" property 2013-01-20 13:09:44 +01:00
intel_opregion.c drm/i915: tune down DIDL warning about too many outputs 2013-07-01 11:14:42 +02:00
intel_overlay.c drm/i915: Add VM to pin 2013-08-05 19:04:09 +02:00
intel_panel.c drm/i915: clean up crtc timings computation 2013-08-04 21:25:27 +02:00
intel_pm.c drm/i915: Rename hsw_data_buf_partitioning to intel_ddb_partitioning 2013-08-08 14:04:54 +02:00
intel_ringbuffer.c drm/i915: Add VM to pin 2013-08-05 19:04:09 +02:00
intel_ringbuffer.h drm/i915: unify ring irq refcounts (again) 2013-07-11 14:36:49 +02:00
intel_sdvo.c drm/i915/sdvo: Port the infoframe code to the shared infrastructure 2013-08-08 14:04:49 +02:00
intel_sdvo_regs.h drm/i915: clear the entire sdvo infoframe buffer 2012-10-24 15:12:48 +02:00
intel_sideband.c drm/i915: change VLV IOSF sideband accessors to not return error code 2013-05-23 23:25:42 +02:00
intel_sprite.c drm/i915: Calculate the sprite WM based on the source width instead of the destination width 2013-08-05 19:03:56 +02:00
intel_tv.c drm/i915/tv: Use native encoder->mode_set callback 2013-08-04 21:25:22 +02:00
intel_uncore.c drm/i915: Convert the register access tracepoint to be conditional 2013-07-25 15:22:07 +02:00