Restore OOM logic on page fault after r357026.
Right now OOM is initiated unconditionally on the page allocation failure, after the wait. Reported by: Mark Millard <marklmi@yahoo.com> Reviewed by: cy, markj Sponsored by: The FreeBSD Foundation Differential revision: https://reviews.freebsd.org/D23409
This commit is contained in:
parent
5e1e7e6192
commit
b70f6e1513
@ -1073,12 +1073,14 @@ vm_fault_allocate(struct faultstate *fs)
|
||||
fs->oom < vm_pfault_oom_attempts) {
|
||||
fs->oom++;
|
||||
vm_waitpfault(dset, vm_pfault_oom_wait * hz);
|
||||
} else {
|
||||
if (bootverbose)
|
||||
printf(
|
||||
"proc %d (%s) failed to alloc page on fault, starting OOM\n",
|
||||
curproc->p_pid, curproc->p_comm);
|
||||
vm_pageout_oom(VM_OOM_MEM_PF);
|
||||
fs->oom = 0;
|
||||
}
|
||||
if (bootverbose)
|
||||
printf(
|
||||
"proc %d (%s) failed to alloc page on fault, starting OOM\n",
|
||||
curproc->p_pid, curproc->p_comm);
|
||||
vm_pageout_oom(VM_OOM_MEM_PF);
|
||||
return (KERN_RESOURCE_SHORTAGE);
|
||||
}
|
||||
fs->oom = 0;
|
||||
|
Loading…
Reference in New Issue
Block a user