Page MenuHomeFreeBSD

D33810.id101481.diff
No OneTemporary

D33810.id101481.diff

diff --git a/sys/vm/vm_pageout.c b/sys/vm/vm_pageout.c
--- a/sys/vm/vm_pageout.c
+++ b/sys/vm/vm_pageout.c
@@ -1902,6 +1902,7 @@
void
vm_pageout_oom(int shortage)
{
+ const char *reason;
struct proc *p, *bigproc;
vm_offset_t size, bigsize;
struct thread *td;
@@ -2014,11 +2015,25 @@
}
}
sx_sunlock(&allproc_lock);
+
if (bigproc != NULL) {
+ switch (shortage) {
+ case VM_OOM_MEM:
+ reason = "failed to reclaim memory";
+ break;
+ case VM_OOM_MEM_PF:
+ reason = "a thread waited too long to allocate a page";
+ break;
+ case VM_OOM_SWAPZ:
+ reason = "out of swap space";
+ break;
+ default:
+ panic("unknown OOM reason %d", shortage);
+ }
if (vm_panic_on_oom != 0 && --vm_panic_on_oom == 0)
- panic("out of swap space");
+ panic("%s", reason);
PROC_LOCK(bigproc);
- killproc(bigproc, "out of swap space");
+ killproc(bigproc, reason);
sched_nice(bigproc, PRIO_MIN);
_PRELE(bigproc);
PROC_UNLOCK(bigproc);

File Metadata

Mime Type
text/plain
Expires
Sun, Apr 5, 5:44 AM (20 h, 3 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
30873032
Default Alt Text
D33810.id101481.diff (964 B)

Event Timeline