linux_dsm_epyc7002/drivers/gpu/drm/i915
Jesse Barnes 8e7d2b2c6e drm/i915: allocate large pointer arrays with vmalloc
For awhile now, many of the GEM code paths have allocated page or
object arrays with the slab allocator.  This is nice and fast, but
won't work well if memory is fragmented, since the slab allocator works
with physically contiguous memory (i.e. order > 2 allocations are
likely to fail fairly early after booting and doing some work).

This patch works around the issue by falling back to vmalloc for
>PAGE_SIZE allocations.  This is ugly, but much less work than chaining
a bunch of pages together by hand (suprisingly there's not a bunch of
generic kernel helpers for this yet afaik).  vmalloc space is somewhat
precious on 32 bit kernels, but our allocations shouldn't be big enough
to cause problems, though they're routinely more than a page.

Note that this patch doesn't address the unchecked
alloc-based-on-ioctl-args in GEM; that needs to be fixed in a separate
patch.

Also, I've deliberately ignored the DRM's "area" junk.  I don't think
anyone actually uses it anymore and I'm hoping it gets ripped out soon.

[Updated: removed size arg to new free function.  We could unify the
free functions as well once the DRM mem tracking is ripped out.]

fd.o bug #20152 (part 1/3)

Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
Signed-off-by: Eric Anholt <eric@anholt.net>
2009-05-19 10:07:14 -07:00
..
dvo_ch7xxx.c DRM: i915: add mode setting support 2008-12-29 17:47:23 +10:00
dvo_ch7017.c DRM: i915: add mode setting support 2008-12-29 17:47:23 +10:00
dvo_ivch.c DRM: i915: add mode setting support 2008-12-29 17:47:23 +10:00
dvo_sil164.c DRM: i915: add mode setting support 2008-12-29 17:47:23 +10:00
dvo_tfp410.c DRM: i915: add mode setting support 2008-12-29 17:47:23 +10:00
dvo.h drm/i915: fix sparse warnings: move 'extern' decls to header file 2008-12-29 17:47:26 +10:00
i915_dma.c drm/i915: Add new GET_PIPE_FROM_CRTC_ID ioctl. 2009-05-14 16:00:32 -07:00
i915_drv.c drm/i915: Unregister ACPI video driver when exiting 2009-04-17 13:31:07 -07:00
i915_drv.h drm/i915: Include 965GME pci ID in IS_I965GM(dev) to match UMS. 2009-05-14 16:00:30 -07:00
i915_gem_debug.c drm/i915: Add a spinlock to protect the active_list 2009-04-01 15:22:07 -07:00
i915_gem_debugfs.c drm/i915: Implement batch and ring buffer dumping 2009-04-08 10:18:06 -07:00
i915_gem_tiling.c drm/i915: fix transition to I915_TILING_NONE 2009-04-17 13:31:05 -07:00
i915_gem.c drm/i915: allocate large pointer arrays with vmalloc 2009-05-19 10:07:14 -07:00
i915_ioc32.c drm: reorganise drm tree to be more future proof. 2008-07-14 10:45:01 +10:00
i915_irq.c drm/i915: Don't let an oops get triggered from irq_emit without dma init. 2009-04-17 13:30:50 -07:00
i915_mem.c drm: move to kref per-master structures. 2008-12-29 17:47:22 +10:00
i915_opregion.c drm/i915: Enable ASLE if present 2009-04-17 13:31:09 -07:00
i915_reg.h drm/i915: workaround IGD i2c bus issue in kernel side (v2) 2009-05-14 16:00:26 -07:00
i915_suspend.c drm/i915: save/restore fence registers across suspend/resume 2009-04-30 16:04:40 -07:00
intel_bios.c drm/i915: handle bogus VBT panel timing 2009-02-25 14:10:42 +10:00
intel_bios.h drm/i915: Fix LVDS dither setting 2009-03-27 15:12:18 -07:00
intel_crt.c drm/i915: Use the GM45 VGA hotplug workaround on G45 as well. 2009-05-14 16:00:29 -07:00
intel_display.c drm/i915: Add new GET_PIPE_FROM_CRTC_ID ioctl. 2009-05-14 16:00:32 -07:00
intel_drv.h drm/i915: Add new GET_PIPE_FROM_CRTC_ID ioctl. 2009-05-14 16:00:32 -07:00
intel_dvo.c drm/i915: fix sparse warnings: move 'extern' decls to header file 2008-12-29 17:47:26 +10:00
intel_fb.c sysrq, intel_fb: fix sysrq g collision 2009-05-15 07:56:24 -05:00
intel_hdmi.c drm/i915: Set HDMI hot plug interrupt enable for only the output in question. 2009-05-14 16:00:31 -07:00
intel_i2c.c drm/i915: workaround IGD i2c bus issue in kernel side (v2) 2009-05-14 16:00:26 -07:00
intel_lvds.c drm/i915: ignore LVDS on intel graphics systems that lie about having it 2009-05-14 16:00:28 -07:00
intel_modes.c drm/i915: workaround IGD i2c bus issue in kernel side (v2) 2009-05-14 16:00:26 -07:00
intel_sdvo_regs.h drm/i915: Fix SDVO CREATE_PREFERRED_INPUT_TIMING command 2009-04-01 15:22:04 -07:00
intel_sdvo.c drm/i915: sync hdmi detection by hdmi identifier with 2D 2009-04-08 10:18:17 -07:00
intel_tv.c drm/i915: fix TV mode setting in property change 2009-04-01 15:22:00 -07:00
Makefile drm/i915: Convert i915 proc files to seq_file and move to debugfs. 2009-03-27 15:12:01 -07:00