lkml.org 
[lkml]   [2008]   [Aug]   [12]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: stack overflow on Sparc64


    On Tue, 12 Aug 2008, David Miller wrote:

    > From: David Miller <davem@davemloft.net>
    > Date: Mon, 11 Aug 2008 23:30:13 -0700 (PDT)
    >
    > > The problem is that CONFIG_STACK_DEBUG doesn't understand
    > > the IRQ stacks at all.
    > >
    > > I'll see if I can tweak it to handle this.
    >
    > This patch, on top of my original IRQSTACKS patch for
    > sparc64, seems to get things working for me.

    Thanks, the patch works.

    Mikulas

    > diff --git a/arch/sparc64/lib/mcount.S b/arch/sparc64/lib/mcount.S
    > index 9e4534b..24e6a3c 100644
    > --- a/arch/sparc64/lib/mcount.S
    > +++ b/arch/sparc64/lib/mcount.S
    > @@ -45,11 +45,47 @@ _mcount:
    > sub %g3, STACK_BIAS, %g3
    > cmp %sp, %g3
    > bg,pt %xcc, 1f
    > - sethi %hi(panicstring), %g3
    > + nop
    > +#ifdef CONFIG_IRQSTACKS
    > + lduh [%g6 + TI_CPU], %g1
    > + sethi %hi(hardirq_stack), %g3
    > + or %g3, %lo(hardirq_stack), %g3
    > + sllx %g1, 3, %g1
    > + ldx [%g3 + %g1], %g7
    > + sub %g7, STACK_BIAS, %g7
    > + cmp %sp, %g7
    > + bleu,pt %xcc, 2f
    > + sethi %hi(THREAD_SIZE), %g3
    > + add %g7, %g3, %g7
    > + cmp %sp, %g7
    > + blu,pn %xcc, 1f
    > +2: sethi %hi(softirq_stack), %g3
    > + or %g3, %lo(softirq_stack), %g3
    > + ldx [%g3 + %g1], %g7
    > + cmp %sp, %g7
    > + bleu,pt %xcc, 2f
    > + sethi %hi(THREAD_SIZE), %g3
    > + add %g7, %g3, %g7
    > + cmp %sp, %g7
    > + blu,pn %xcc, 1f
    > + nop
    > +#endif
    > + /* If we are already on panic stack, don't hop onto it
    > + * again, we are already trying to output the stack overflow
    > + * message.
    > + */
    > sethi %hi(ovstack), %g7 ! cant move to panic stack fast enough
    > or %g7, %lo(ovstack), %g7
    > - add %g7, OVSTACKSIZE, %g7
    > + add %g7, OVSTACKSIZE, %g3
    > + sub %g3, STACK_BIAS - 192, %g3
    > sub %g7, STACK_BIAS, %g7
    > + cmp %sp, %g7
    > + blu,pn %xcc, 2f
    > + cmp %sp, %g3
    > + bleu,pn %xcc, 1f
    > + nop
    > +2: mov %g3, %sp
    > + sethi %hi(panicstring), %g3
    > mov %g7, %sp
    > call prom_printf
    > or %g3, %lo(panicstring), %o0
    >


    \
     
     \ /
      Last update: 2008-08-13 02:55    [W:2.915 / U:0.060 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site