freebsd-skq/sys/dev/drm2
alc 8343c406db Introduce a new mechanism for relocating virtual pages to a new physical
address and use this mechanism when:

1. kmem_alloc_{attr,contig}() can't find suitable free pages in the physical
   memory allocator's free page lists.  This replaces the long-standing
   approach of scanning the inactive and inactive queues, converting clean
   pages into PG_CACHED pages and laundering dirty pages.  In contrast, the
   new mechanism does not use PG_CACHED pages nor does it trigger a large
   number of I/O operations.

2. on 32-bit MIPS processors, uma_small_alloc() and the pmap can't find
   free pages in the physical memory allocator's free page lists that are
   covered by the direct map.  Tested by: adrian

3. ttm_bo_global_init() and ttm_vm_page_alloc_dma32() can't find suitable
   free pages in the physical memory allocator's free page lists.

In the coming months, I expect that this new mechanism will be applied in
other places.  For example, balloon drivers should use relocation to
minimize fragmentation of the guest physical address space.

Make vm_phys_alloc_contig() a little smarter (and more efficient in some
cases).  Specifically, use vm_phys_segs[] earlier to avoid scanning free
page lists that can't possibly contain suitable pages.

Reviewed by:	kib, markj
Glanced at:	jhb
Discussed with:	jeff
Sponsored by:	EMC / Isilon Storage Division
Differential Revision:	https://reviews.freebsd.org/D4444
2015-12-19 18:42:50 +00:00
..
i915 t seems certain Intel GPUs use GPIO bitbanging over a child device 2015-12-17 20:33:20 +00:00
radeon radeon_suspend_kms: don't mess with pci state that's managed by the bus 2015-09-11 15:51:20 +00:00
ttm Introduce a new mechanism for relocating virtual pages to a new physical 2015-12-19 18:42:50 +00:00
ati_pcigart.c drm: Update the device-independent code to match Linux 3.8.13 2015-03-17 18:50:33 +00:00
drm_agpsupport.c drm: Update the device-independent code to match Linux 3.8.13 2015-03-17 18:50:33 +00:00
drm_atomic.h drm: Update the device-independent code to match Linux 3.8.13 2015-03-17 18:50:33 +00:00
drm_auth.c drm: Update the device-independent code to match Linux 3.8.13 2015-03-17 18:50:33 +00:00
drm_buffer.c drm: Update the device-independent code to match Linux 3.8.13 2015-03-17 18:50:33 +00:00
drm_buffer.h
drm_bufs.c Add a new file operations hook for mmap operations. File type-specific 2015-06-04 19:41:15 +00:00
drm_context.c drm: Update the device-independent code to match Linux 3.8.13 2015-03-17 18:50:33 +00:00
drm_core.h
drm_crtc_helper.c drm: Import Linux commit 9bc3cd5673d84d29272fa7181a4dfca83cbb48c1 2015-03-29 18:45:51 +00:00
drm_crtc_helper.h drm: Update the device-independent code to match Linux 3.8.13 2015-03-17 18:50:33 +00:00
drm_crtc.c drm2: a few minor fixes after r280183 2015-10-04 07:45:36 +00:00
drm_crtc.h drm: Update the device-independent code to match Linux 3.8.13 2015-03-17 18:50:33 +00:00
drm_dma.c drm: Update the device-independent code to match Linux 3.8.13 2015-03-17 18:50:33 +00:00
drm_dp_helper.c drm: Update the device-independent code to match Linux 3.8.13 2015-03-17 18:50:33 +00:00
drm_dp_helper.h
drm_dp_iic_helper.c drm: Update the device-independent code to match Linux 3.8.13 2015-03-17 18:50:33 +00:00
drm_drv.c drm: Update the device-independent code to match Linux 3.8.13 2015-03-17 18:50:33 +00:00
drm_edid_modes.h drm: Update the device-independent code to match Linux 3.8.13 2015-03-17 18:50:33 +00:00
drm_edid.c Fix build. 2015-03-17 19:13:11 +00:00
drm_edid.h drm: Update the device-independent code to match Linux 3.8.13 2015-03-17 18:50:33 +00:00
drm_fb_helper.c drm: Update the device-independent code to match Linux 3.8.13 2015-03-17 18:50:33 +00:00
drm_fb_helper.h drm: Update the device-independent code to match Linux 3.8.13 2015-03-17 18:50:33 +00:00
drm_fixed.h
drm_fops.c drm2: a few minor fixes after r280183 2015-10-04 07:45:36 +00:00
drm_fourcc.h drm: Update the device-independent code to match Linux 3.8.13 2015-03-17 18:50:33 +00:00
drm_gem_names.c drm: Update the device-independent code to match Linux 3.8.13 2015-03-17 18:50:33 +00:00
drm_gem_names.h drm/i915: Add HW context support 2014-09-17 08:28:50 +00:00
drm_gem.c drm: Update the device-independent code to match Linux 3.8.13 2015-03-17 18:50:33 +00:00
drm_global.c drm: Update the device-independent code to match Linux 3.8.13 2015-03-17 18:50:33 +00:00
drm_global.h
drm_hashtab.c drm: Update the device-independent code to match Linux 3.8.13 2015-03-17 18:50:33 +00:00
drm_hashtab.h
drm_ioc32.c drm: Update the device-independent code to match Linux 3.8.13 2015-03-17 18:50:33 +00:00
drm_ioctl.c drm: Update the device-independent code to match Linux 3.8.13 2015-03-17 18:50:33 +00:00
drm_irq.c CALLOUT_MPSAFE has lost its meaning since r141428, i.e., for more than ten 2015-05-22 17:05:21 +00:00
drm_linux_list_sort.c
drm_linux_list.h
drm_lock.c Hide an unused in FreeBSD function behind #ifdef linux to get rid of 2015-09-22 15:32:27 +00:00
drm_memory.c drm: Update the device-independent code to match Linux 3.8.13 2015-03-17 18:50:33 +00:00
drm_mm.c drm: Update the device-independent code to match Linux 3.8.13 2015-03-17 18:50:33 +00:00
drm_mm.h drm: Update the device-independent code to match Linux 3.8.13 2015-03-17 18:50:33 +00:00
drm_mode.h drm: Update the device-independent code to match Linux 3.8.13 2015-03-17 18:50:33 +00:00
drm_modes.c drm: Import Linux commit 9bc3cd5673d84d29272fa7181a4dfca83cbb48c1 2015-03-29 18:45:51 +00:00
drm_os_freebsd.c drm: Update the device-independent code to match Linux 3.8.13 2015-03-17 18:50:33 +00:00
drm_os_freebsd.h drm: Update the device-independent code to match Linux 3.8.13 2015-03-17 18:50:33 +00:00
drm_pci.c drm2: a few minor fixes after r280183 2015-10-04 07:45:36 +00:00
drm_pciids.h drm: Update the device-independent code to match Linux 3.8.13 2015-03-17 18:50:33 +00:00
drm_sarea.h drm: Update the device-independent code to match Linux 3.8.13 2015-03-17 18:50:33 +00:00
drm_scatter.c drm: Update the device-independent code to match Linux 3.8.13 2015-03-17 18:50:33 +00:00
drm_stub.c drm2: a few minor fixes after r280183 2015-10-04 07:45:36 +00:00
drm_sysctl.c drm: Update the device-independent code to match Linux 3.8.13 2015-03-17 18:50:33 +00:00
drm_vm.c drm: Update the device-independent code to match Linux 3.8.13 2015-03-17 18:50:33 +00:00
drm.h drm: Update the device-independent code to match Linux 3.8.13 2015-03-17 18:50:33 +00:00
drmP.h drm2: a few minor fixes after r280183 2015-10-04 07:45:36 +00:00