kernel - Do not use M_USE_INTERRUPT_RESERVE for M_NOWAIT
authorMatthew Dillon <dillon@apollo.backplane.com>
Sun, 1 Apr 2012 01:33:59 +0000 (18:33 -0700)
committerMatthew Dillon <dillon@apollo.backplane.com>
Sun, 1 Apr 2012 01:33:59 +0000 (18:33 -0700)
* Redefine M_NOWAIT to not use M_USE_INTERRUPT_RESERVE.  This can result
  in mbuf exhaustion during bursts of mbuf allocations and cause kernel
  kvm expansion to assert and panic.

Reported-by: sephe
sys/sys/malloc.h

index 8aeabf9..83b27e8 100644 (file)
@@ -90,7 +90,7 @@
 #define        M_INTWAIT       (M_WAITOK | M_USE_RESERVE | M_USE_INTERRUPT_RESERVE)
 #define        M_SYSWAIT       (M_WAITOK | M_USE_RESERVE)
 
-#define        M_NOWAIT        M_INTNOWAIT
+#define        M_NOWAIT        (M_RNOWAIT | M_NULLOK | M_USE_RESERVE)
 #define        M_SYSALLOC      M_SYSWAIT
 
 #define        M_MAGIC         877983977       /* time when first defined :-) */