Index: linux-2.6.14-rc2/Makefile =================================================================== --- linux-2.6.14-rc2.orig/Makefile 2005-09-22 10:30:58.000000000 -0700 +++ linux-2.6.14-rc2/Makefile 2005-09-22 10:44:02.000000000 -0700 @@ -1,7 +1,7 @@ VERSION = 2 PATCHLEVEL = 6 SUBLEVEL = 14 -EXTRAVERSION = -rc2-git1 +EXTRAVERSION = -rc2-git1-debug NAME=Affluent Albatross # *DOCUMENTATION* Index: linux-2.6.14-rc2/kernel/kthread.c =================================================================== --- linux-2.6.14-rc2.orig/kernel/kthread.c 2005-09-19 20:00:41.000000000 -0700 +++ linux-2.6.14-rc2/kernel/kthread.c 2005-09-22 10:52:59.000000000 -0700 @@ -147,7 +147,8 @@ struct task_struct *kthread_create(int ( vsnprintf(create.result->comm, sizeof(create.result->comm), namefmt, args); va_end(args); - } + } else + printk(KERN_CRIT "Error in kthread_create %s err=%d\n", namefmt, PTR_ERR(create.result)); return create.result; } Index: linux-2.6.14-rc2/kernel/workqueue.c =================================================================== --- linux-2.6.14-rc2.orig/kernel/workqueue.c 2005-09-19 20:00:41.000000000 -0700 +++ linux-2.6.14-rc2/kernel/workqueue.c 2005-09-22 11:11:08.000000000 -0700 @@ -309,8 +309,10 @@ struct workqueue_struct *__create_workqu struct task_struct *p; wq = kzalloc(sizeof(*wq), GFP_KERNEL); - if (!wq) + if (!wq) { + printk(KERN_CRIT "cw: kzalloc failed.\n"); return NULL; + } wq->name = name; /* We don't need the distraction of CPUs appearing and vanishing. */ @@ -318,8 +320,10 @@ struct workqueue_struct *__create_workqu if (singlethread) { INIT_LIST_HEAD(&wq->list); p = create_workqueue_thread(wq, 0); - if (!p) + if (!p) { + printk(KERN_CRIT "cw: create_workqueue_tread failed (single).\n"); destroy = 1; + } else wake_up_process(p); } else { @@ -331,8 +335,10 @@ struct workqueue_struct *__create_workqu if (p) { kthread_bind(p, cpu); wake_up_process(p); - } else + } else { + printk(KERN_CRIT "cw: create_workqueue_tread failed.\n"); destroy = 1; + } } } unlock_cpu_hotplug(); Index: linux-2.6.14-rc2/mm/slab.c =================================================================== --- linux-2.6.14-rc2.orig/mm/slab.c 2005-09-22 11:21:07.000000000 -0700 +++ linux-2.6.14-rc2/mm/slab.c 2005-09-22 11:44:42.000000000 -0700 @@ -2523,13 +2523,16 @@ static inline void *__cache_alloc(kmem_c STATS_INC_ALLOCHIT(cachep); ac->touched = 1; objp = ac->entry[--ac->avail]; +// printk(KERN_CRIT "__cache_alloc: cache hit objp=%p\n",objp); } else { STATS_INC_ALLOCMISS(cachep); objp = cache_alloc_refill(cachep, flags); +// printk(KERN_CRIT "__cache_alloc: refill objp=%p\n",objp); } local_irq_restore(save_flags); objp = cache_alloc_debugcheck_after(cachep, flags, objp, __builtin_return_address(0)); + BUG_ON(!objp); prefetchw(objp); return objp; } @@ -2906,8 +2909,10 @@ void *__kmalloc(size_t size, unsigned in * functions. */ cachep = __find_general_cachep(size, flags); - if (unlikely(cachep == NULL)) + if (unlikely(cachep == NULL)) { + printk(KERN_CRIT "__kmalloc: Unable to find slab for size = %d\n", size); return NULL; + } return __cache_alloc(cachep, flags); } EXPORT_SYMBOL(__kmalloc);