Page MenuHomeFreeBSD

D33810.id101209.diff
No OneTemporary

D33810.id101209.diff

Index: sys/vm/vm_pageout.h
===================================================================
--- sys/vm/vm_pageout.h
+++ sys/vm/vm_pageout.h
@@ -81,6 +81,7 @@
#define VM_OOM_MEM 1
#define VM_OOM_MEM_PF 2
#define VM_OOM_SWAPZ 3
+#define VM_OOM_MAX 4
/*
* vm_lowmem flags.
Index: sys/vm/vm_pageout.c
===================================================================
--- sys/vm/vm_pageout.c
+++ sys/vm/vm_pageout.c
@@ -1901,6 +1901,7 @@
void
vm_pageout_oom(int shortage)
{
+ const char *reason;
struct proc *p, *bigproc;
vm_offset_t size, bigsize;
struct thread *td;
@@ -2013,11 +2014,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 = "waited too long to allocate a page";
+ break;
+ case VM_OOM_SWAPSZ:
+ 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
Fri, Sep 11, 4:54 AM (13 m, 11 s)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
38684954
Default Alt Text
D33810.id101209.diff (1 KB)

Event Timeline