HomeFreeBSD

MFC r278153,284416: ttm memory allocation improvements

Description

MFC r278153,284416: ttm memory allocation improvements

If the vm_page_alloc_contig() failed in the ttm page allocators, do
what other callers of vm_page_alloc_contig() do, retry after
vm_pageout_grow_cache().

ttm_vm_page_alloc: use vm_page_alloc for pages without dma32 restriction
This change re-organizes code a little bit to extract common pieces
of ttm_alloc_new_pages() and ttm_get_pages() into dedicated functions.
Also, for requests without address restrictions regular vm_page_alloc()
is used.
Lastly, when vm_page_alloc_contig() fails we call VM_WAIT before calling
vm_pageout_grow_cache() to ensure that there is enough free pages at
all.

Note: no MFC to stable/9 because it lacks vm_pageout_grow_cache().

Details

Provenance
avgAuthored on
Parents
rS285001: MFC r284304: MFV r284030: 5818 zfs {ref}compressratio is incorrect with 4k…
Branches
Unknown
Tags
Unknown