summaryrefslogtreecommitdiffstats
path: root/sys/mips/include/pmap.h
diff options
context:
space:
mode:
authoralc <alc@FreeBSD.org>2015-12-19 18:42:50 +0000
committeralc <alc@FreeBSD.org>2015-12-19 18:42:50 +0000
commit8343c406db08ecfbfbde5f7677b17a74b24a3645 (patch)
tree34a147bea7788aca2b0a5376368e87fce8afbfa1 /sys/mips/include/pmap.h
parentc7cbfde2c233f93325b265b5a732bcebc5be731e (diff)
downloadFreeBSD-src-8343c406db08ecfbfbde5f7677b17a74b24a3645.zip
FreeBSD-src-8343c406db08ecfbfbde5f7677b17a74b24a3645.tar.gz
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
Diffstat (limited to 'sys/mips/include/pmap.h')
-rw-r--r--sys/mips/include/pmap.h1
1 files changed, 0 insertions, 1 deletions
diff --git a/sys/mips/include/pmap.h b/sys/mips/include/pmap.h
index 8392d8a..0354119 100644
--- a/sys/mips/include/pmap.h
+++ b/sys/mips/include/pmap.h
@@ -178,7 +178,6 @@ void *pmap_kenter_temporary(vm_paddr_t pa, int i);
void pmap_kenter_temporary_free(vm_paddr_t pa);
void pmap_flush_pvcache(vm_page_t m);
int pmap_emulate_modified(pmap_t pmap, vm_offset_t va);
-void pmap_grow_direct_page_cache(void);
void pmap_page_set_memattr(vm_page_t, vm_memattr_t);
#endif /* _KERNEL */
OpenPOWER on IntegriCloud