git: dd8ea1c755b3 - stable/13 - vm_reserv: fix zero-boundary error
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Wed, 29 Dec 2021 17:25:07 UTC
The branch stable/13 has been updated by dougm: URL: https://cgit.FreeBSD.org/src/commit/?id=dd8ea1c755b3cc2c9c4eaa8611a97ac8f0f9b755 commit dd8ea1c755b3cc2c9c4eaa8611a97ac8f0f9b755 Author: Doug Moore <dougm@FreeBSD.org> AuthorDate: 2021-12-26 17:40:27 +0000 Commit: Doug Moore <dougm@FreeBSD.org> CommitDate: 2021-12-29 17:23:48 +0000 vm_reserv: fix zero-boundary error Handle specially the boundary==0 case of vm_reserv_reclaim_config, by turning off boundary adjustment in that case. Reviewed by: alc Tested by: pho, madpilot (cherry picked from commit 49fd2d51f07fb29af3fd239f83f249c00cd84123) --- sys/vm/vm_reserv.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/sys/vm/vm_reserv.c b/sys/vm/vm_reserv.c index d578d67dbe59..f3344f8a9cd2 100644 --- a/sys/vm/vm_reserv.c +++ b/sys/vm/vm_reserv.c @@ -1332,7 +1332,7 @@ vm_reserv_reclaim_contig(int domain, u_long npages, vm_paddr_t low, * doesn't include a boundary-multiple within it. Otherwise, * no boundary-constrained allocation is possible. */ - if (size > boundary) + if (size > boundary && boundary > 0) return (false); marker = &vm_rvd[domain].marker; queue = &vm_rvd[domain].partpop; @@ -1343,7 +1343,8 @@ vm_reserv_reclaim_contig(int domain, u_long npages, vm_paddr_t low, */ ppn_align = (int)(ulmin(ulmax(PAGE_SIZE, alignment), VM_LEVEL_0_SIZE) >> PAGE_SHIFT); - ppn_bound = (int)(MIN(MAX(PAGE_SIZE, boundary), + ppn_bound = boundary == 0 ? VM_LEVEL_0_NPAGES : + (int)(MIN(MAX(PAGE_SIZE, boundary), VM_LEVEL_0_SIZE) >> PAGE_SHIFT); vm_reserv_domain_scan_lock(domain);