Hi, > > Call Trace: > > [c00000003c187b68] [c00000000000f140] .show_stack+0x70/0x1bc (unreliable) > > [c00000003c187c18] [c000000000052d0c] .__schedule_bug+0x64/0x80 > > [c00000003c187ca8] [c00000000036fa84] .schedule+0xc4/0x6b0 > > [c00000003c187d98] [c0000000003702d0] .schedule_timeout+0x3c/0xe8 > > [c00000003c187e68] [c00000000036f82c] .wait_for_common+0x150/0x22c > > [c00000003c187f28] [c000000000074868] .kthreadd+0x12c/0x1f0 > > [c00000003c187fd8] [c000000000024864] .kernel_thread+0x4c/0x68 > > But nothing slub wise here... I had earlier biesected this to the following commit, should have mentioned that, sorry ! commit f0630fff54a239efbbd89faf6a62da071ef1ff78 Author: Christoph Lameter Date: Sun Jul 15 23:38:14 2007 -0700 SLUB: support slub_debug on by default [...] > Could be the result of fallback under debug?? Looks like there is a hole > in the fallback logic. But this could be something completely different. What do you mean by fallback ? > If this is slub related then we may not be reenabling interrupt somewhere > if debug is on. > > diff --git a/mm/slub.c b/mm/slub.c > index 96d63eb..6d0a103 100644 > --- a/mm/slub.c > +++ b/mm/slub.c > @@ -1536,8 +1536,14 @@ new_slab: > * That is only possible if certain conditions are met that are being > * checked when a slab is created. > */ > - if (!(gfpflags & __GFP_NORETRY) && (s->flags & __PAGE_ALLOC_FALLBACK)) > - return kmalloc_large(s->objsize, gfpflags); > + if (!(gfpflags & __GFP_NORETRY) && (s->flags & __PAGE_ALLOC_FALLBACK)) { > + if (gfpflags & __GFP_WAIT) > + local_irq_enable(); > + object = kmalloc_large(s->objsize, gfpflags); > + if (gfpflags & __GFP_WAIT) > + local_irq_disable(); > + return object; > + } > > return NULL; > debug: I just tried the patch, but the problem is still there... Gruß, Jens