Page MenuHomeFreeBSD

vm_page: Handle VM_ALLOC_NORECLAIM in the contiguous page allocator
ClosedPublic

Authored by markj on Nov 8 2021, 10:16 PM.
Tags
None
Referenced Files
F102804229: D32899.diff
Sun, Nov 17, 9:51 AM
Unknown Object (File)
Wed, Oct 23, 12:15 PM
Unknown Object (File)
Oct 17 2024, 9:37 AM
Unknown Object (File)
Sep 27 2024, 12:29 PM
Unknown Object (File)
Sep 24 2024, 8:56 PM
Unknown Object (File)
Sep 24 2024, 11:57 AM
Unknown Object (File)
Sep 21 2024, 5:34 PM
Unknown Object (File)
Sep 20 2024, 3:44 PM
Subscribers

Details

Summary

We added _NORECLAIM to request that kmem_alloc_contig_pages() not spend
time scanning physical memory for candidates to reclaim. In some
situations the scanning can induce large amounts of undesirable latency,
and it's less important that the request be satisfied than it is that we
not spend many milliseconds scanning.

The problem extends to vm_reserv_reclaim_contig(), which unlike
vm_reserv_reclaim() may have to scan the entire list of partially
populated reservations. Use VM_ALLOC_NORECLAIM to request that this
scan not be executed.[1]

As a side effect, this fixes a regression in 02fb0585e7b3 ("vm_page:
Drop handling of VM_ALLOC_NOOBJ in vm_page_alloc_contig_domain()")
where VM_ALLOC_CONTIG was not included in VPAC_FLAGS or VPANC_FLAGS even
though it is not masked by kmem_alloc_contig_pages().[2]

Reported by: gallatin [1], glebius [2]

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Not Applicable
Unit
Tests Not Applicable