linux_dsm_epyc7002/drivers/gpu/drm/i915
Chris Wilson 1d83f4426f drm/i915: Batch copy_from_user for relocation processing
Originally the code tried to allocate a large enough array to perform
the copy using vmalloc, performance wasn't great and throughput was
improved by processing each individual relocation entry separately.
This too is not as efficient as one would desire. A compromise would be
to allocate a single page, or to allocate a few entries on the stack,
and process the copy in batches. The latter gives simpler code and more
consistent performance due to a lack of heuristic.

x11perf -copywinwin10:	n450/pnv	i3-330m		i5-2520m (cpu)
               before: 	  249000	 785000		 1280000 (80%)
                 page:	  264000	 896000		 1280000 (65%)
             on-stack:	  264000	 902000		 1280000 (67%)

v2: Use 512-bytes of stack for batching rather than allocate a page.
v3: Tidy the code slightly with more descriptive variable names

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2012-03-26 09:59:05 +02:00
..
dvo_ch7xxx.c
dvo_ch7017.c
dvo_ivch.c
dvo_sil164.c
dvo_tfp410.c
dvo.h
i915_debugfs.c drm/i915: [dinq] shut up six instances of -Warray-bounds 2012-03-22 17:45:06 +01:00
i915_dma.c drm/i915: add HAS_ALIASING_PPGTT parameter for userspace 2012-03-20 21:55:40 +01:00
i915_drv.c drm/i915: move NEEDS_FORCE_WAKE to i915_drv.c 2012-03-23 23:45:50 +01:00
i915_drv.h drm/i915: add an explict mmio base for gpio/gmbus io 2012-03-25 22:33:33 +02:00
i915_gem_debug.c
i915_gem_evict.c drm/i915: No need to search again after retiring requests 2012-02-27 17:37:13 +01:00
i915_gem_execbuffer.c drm/i915: Batch copy_from_user for relocation processing 2012-03-26 09:59:05 +02:00
i915_gem_gtt.c drm/i915: bind objects to the global gtt only when needed 2012-03-20 21:52:01 +01:00
i915_gem_tiling.c drm/i915: swizzling support for snb/ivb 2012-02-08 23:16:24 +01:00
i915_gem.c drm/i915: Release the mmap offset when purging a buffer 2012-03-23 11:04:35 +01:00
i915_ioc32.c
i915_irq.c drm/i915: bind objects to the global gtt only when needed 2012-03-20 21:52:01 +01:00
i915_reg.h drm/i915: re-order GT IIR bit definitions 2012-03-23 23:46:40 +01:00
i915_suspend.c drm/i915: Re-enable gen7 RC6 and GPU turbo after resume. 2012-01-24 13:25:10 -08:00
i915_trace_points.c
i915_trace.h
intel_acpi.c drm/i915: remove ACPI related DRM_ERRORs 2012-03-02 19:23:44 +01:00
intel_bios.c drm/i915: Check VBIOS value for determining LVDS dual channel mode, too 2012-03-22 23:23:45 +01:00
intel_bios.h
intel_crt.c drm/i915: don't allow interlaced pipeconf on gen2 2012-02-10 17:28:45 +01:00
intel_display.c drm/i915/sdov: switch IS_SDVOB to a flag 2012-03-24 15:55:53 +01:00
intel_dp.c drm/i915: use the new hdmi_force_audio enum more 2012-02-27 17:45:36 +01:00
intel_drv.h drm/i915/sdov: switch IS_SDVOB to a flag 2012-03-24 15:55:53 +01:00
intel_dvo.c drm/i915: fixup interlaced vertical timings confusion, part 1 2012-02-10 17:24:06 +01:00
intel_fb.c drm: do not set fb_info->pixmap fields 2012-02-09 10:34:43 +00:00
intel_hdmi.c drm/i915: add a "force-dvi" HDMI audio mode 2012-02-14 10:03:18 +01:00
intel_i2c.c drm/i915: enable gmbus on gen2 2012-03-25 22:35:14 +02:00
intel_lvds.c drm/i915: Ignore LVDS on hp t5745 and hp st5747 thin client 2012-02-27 11:12:38 +01:00
intel_modes.c Merge remote-tracking branch 'airlied/drm-next' into for-airlied 2012-02-23 14:56:11 +01:00
intel_opregion.c i915: Add and use pr_fmt and pr_<level> 2012-03-18 21:50:21 +01:00
intel_overlay.c Revert "drivers/gpu/drm/i915/intel_overlay.c needs seq_file.h" 2012-02-16 10:31:23 +01:00
intel_panel.c i915: Add and use pr_fmt and pr_<level> 2012-03-18 21:50:21 +01:00
intel_ringbuffer.c drm/i915: Add wait_for in init_ring_common 2012-03-18 19:10:06 +01:00
intel_ringbuffer.h drm/i915: Record the tail at each request and use it to estimate the head 2012-02-15 14:26:03 +01:00
intel_sdvo_regs.h
intel_sdvo.c drm/i915/sdov: switch IS_SDVOB to a flag 2012-03-24 15:55:53 +01:00
intel_sprite.c Merge tag 'drm-intel-next-2012-02-07' of git://people.freedesktop.org/~danvet/drm-intel into drm-core-next 2012-02-14 14:16:00 +00:00
intel_tv.c drm/i915: fixup interlaced vertical timings confusion, part 1 2012-02-10 17:24:06 +01:00
Makefile