[Top] [All Lists]

Re: XFS causing stack overflow

To: Andi Kleen <andi@xxxxxxxxxxxxxx>
Subject: Re: XFS causing stack overflow
From: Dave Chinner <david@xxxxxxxxxxxxx>
Date: Mon, 12 Dec 2011 10:05:11 +1100
Cc: Christoph Hellwig <hch@xxxxxxxxxxxxx>, linux-mm@xxxxxxxxx, xfs@xxxxxxxxxxx, "Ryan C. England" <ryan.england@xxxxxxxxxxxxx>
In-reply-to: <20111211000036.GH24062@xxxxxxxxxxxxxxxxxx>
References: <CAAnfqPAm559m-Bv8LkHARm7iBW5Kfs7NmjTFidmg-idhcOq4sQ@xxxxxxxxxxxxxx> <20111209115513.GA19994@xxxxxxxxxxxxx> <20111209221956.GE14273__25752.826271537$1323469420$gmane$org@dastard> <m262hop5kc.fsf@xxxxxxxxxxxxxx> <20111210221345.GG14273@dastard> <20111211000036.GH24062@xxxxxxxxxxxxxxxxxx>
User-agent: Mutt/1.5.21 (2010-09-15)
On Sun, Dec 11, 2011 at 01:00:36AM +0100, Andi Kleen wrote:
> > Where does the x86-64 do the interrupt stack switch?
> in entry_64.S
> > 
> > I know the x86 32 bit interrupt handler switches to an irq/softirq
> > context stack, but the 64 bit one doesn't appear to. Indeed,
> > arch/x86/kernel/irq_{32,64}.c are very different, and only the 32
> > bit irq handler switches to another stack to process the
> > interrupts...
> x86-64 always used interrupt stacks and has used softirq stacks
> for a long time. 32bit got to it much later (the only good 
> thing left from that 4k stack "experiment")

Oh, it's hidden in the "SAVE_ARGS_IRQ" macro. 

But that happens before do_IRQ is called, so what is the do_IRQ call
chain doing on this stack given that we've already supposed to have
switched to the interrupt stack before do_IRQ is called?


Dave Chinner

<Prev in Thread] Current Thread [Next in Thread>