Page MenuHomeFreeBSD

D32592.diff
No OneTemporary

D32592.diff

diff --git a/sys/vm/vm_page.c b/sys/vm/vm_page.c
--- a/sys/vm/vm_page.c
+++ b/sys/vm/vm_page.c
@@ -2409,8 +2409,14 @@
m = vm_phys_alloc_freelist_pages(domain, freelist,
VM_FREEPOOL_DIRECT, 0);
vm_domain_free_unlock(vmd);
- if (m == NULL)
+ if (m == NULL) {
vm_domain_freecnt_inc(vmd, 1);
+#if VM_NRESERVLEVEL > 0
+ if (freelist == VM_NFREELIST &&
+ vm_reserv_reclaim_inactive(domain))
+ goto again;
+#endif
+ }
}
if (m == NULL) {
if (vm_domain_alloc_fail(vmd, NULL, req))
@@ -2540,6 +2546,11 @@
vm_domain_free_unlock(vmd);
if (m_ret == NULL) {
vm_domain_freecnt_inc(vmd, npages);
+#if VM_NRESERVLEVEL > 0
+ if (vm_reserv_reclaim_contig(domain, npages, low,
+ high, alignment, boundary))
+ goto again;
+#endif
}
}
if (m_ret == NULL) {

File Metadata

Mime Type
text/plain
Expires
Thu, May 1, 3:02 PM (4 h, 50 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
17884294
Default Alt Text
D32592.diff (803 B)

Event Timeline