Messages in this thread |  | | Date | Wed, 30 Mar 2005 21:14:22 -0500 | From | Brian Gerst <> | Subject | Re: question about do_IRQ + 4k stacks |
| |
Terence Ripperda wrote: > I'm investigating some 4k stack issues with our driver, and I noticed > this ordering in do_IRQ: > > asmlinkage unsigned int do_IRQ(struct pt_regs regs) > { > ... > > #ifdef CONFIG_DEBUG_STACKOVERFLOW > /* Debugging check for stack overflow: is there less than 1KB free? */ > { > ... > } > #endif > > ... > > #ifdef CONFIG_4KSTACKS > > for (;;) { > ... switch to interrupt stack > } > #endif > > > Is the intention of this stack overflow check to catch a currently > running kernel thread that's getting low on stack space, or is the > intent to make sure there's enough stack space to handle the incoming > interrupt? if the later, wouldn't you want to potentially switch to > your interrupt stack to be more accurate? (I recognize that often you > will have switched to an empty stack, unless you have nested > interrupts) >
It checks for both process context (system call or kernel thread) or interrupt context (nested irqs) stack overflows.
-- Brian Gerst - 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/
|  |