I've added oom handling into the natsemi network driver, but testing it
was tricky: I immediately ran into oopses.
The attached patch fails kmalloc and kmem_cache_alloc if
(jiffies%HZ) < HZ/10
with a 5 minute guaranteed success, for the boot process.
Is that something the kernel should survive? Obviously the computer is
unusable after the 5 minute grace period, but I didn't expect oopses.
--Manfred
--------------070607000906050502080907 Content-Type: text/plain; name="patch-kmalloc-fail" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="patch-kmalloc-fail"
--- 2.5/mm/slab.c Sat Sep 21 17:03:15 2002 +++ build-2.5/mm/slab.c Sun Sep 22 16:59:29 2002 @@ -1568,6 +1568,9 @@ */ void * kmem_cache_alloc (kmem_cache_t *cachep, int flags) { + if (jiffies > HZ*300 && (jiffies % HZ) < HZ/10) + return NULL; + return __kmem_cache_alloc(cachep, flags); } @@ -1596,6 +1599,9 @@ { cache_sizes_t *csizep = cache_sizes; + if (jiffies > HZ*300 && (jiffies % HZ) < HZ/10) + return NULL; + for (; csizep->cs_size; csizep++) { if (size > csizep->cs_size) continue;
--------------070607000906050502080907--
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/