summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--sys/kern/subr_mbuf.c15
-rw-r--r--sys/vm/vm_kern.c10
2 files changed, 22 insertions, 3 deletions
diff --git a/sys/kern/subr_mbuf.c b/sys/kern/subr_mbuf.c
index 596319d..7c4ab83 100644
--- a/sys/kern/subr_mbuf.c
+++ b/sys/kern/subr_mbuf.c
@@ -621,9 +621,22 @@ mb_alloc(struct mb_lstmngr *mb_list, int how, short type)
* steal from other lists.
*/
m = mb_alloc_wait(mb_list, type);
- } else
+ } else {
+ /*
+ * no way to indent this code decently
+ * with 8-space tabs.
+ */
+ static int last_report;
/* XXX: No consistency. */
mbstat.m_drops++;
+ if (ticks < last_report ||
+ (ticks - last_report) >= hz) {
+ last_report = ticks;
+ printf(
+"mb_alloc for type %d failed, consider increase mbuf value.\n", type);
+ }
+
+ }
}
}
}
diff --git a/sys/vm/vm_kern.c b/sys/vm/vm_kern.c
index 7ab7c08..2e5ea30 100644
--- a/sys/vm/vm_kern.c
+++ b/sys/vm/vm_kern.c
@@ -70,6 +70,7 @@
#include <sys/param.h>
#include <sys/systm.h>
+#include <sys/kernel.h> /* for ticks and hz */
#include <sys/lock.h>
#include <sys/mutex.h>
#include <sys/proc.h>
@@ -331,8 +332,13 @@ kmem_malloc(map, size, flags)
if (vm_map_findspace(map, vm_map_min(map), size, &addr)) {
vm_map_unlock(map);
if (map != kmem_map) {
- printf("Out of mbuf address space!\n");
- printf("Consider increasing NMBCLUSTERS\n");
+ static int last_report; /* when we did it (in ticks) */
+ if (ticks < last_report ||
+ (ticks - last_report) >= hz) {
+ last_report = ticks;
+ printf("Out of mbuf address space!\n");
+ printf("Consider increasing NMBCLUSTERS\n");
+ }
goto bad;
}
if ((flags & M_NOWAIT) == 0)
OpenPOWER on IntegriCloud