[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <Pine.LNX.4.64.0806201717190.14221@engineering.redhat.com>
Date: Fri, 20 Jun 2008 17:26:35 -0400 (EDT)
From: Mikulas Patocka <mpatocka@...hat.com>
To: David Miller <davem@...emloft.net>
cc: sparclinux@...r.kernel.org, linux-kernel@...r.kernel.org,
agk@...hat.com
Subject: Re: stack overflow on Sparc64
On Fri, 20 Jun 2008, David Miller wrote:
> From: Mikulas Patocka <mpatocka@...hat.com>
> Date: Fri, 20 Jun 2008 16:34:23 -0400 (EDT)
>
>> And what if network softirq happened here? How much stack does it consume?
>>
>> The whole overflowed stack trace has 75 functions, I was able to get rid
>> of 9 by avoiding bio_endio recursion and 10 by turning simple functions
>> into inlines. --- so is it enough or not enough for possible networking
>> calls?
>
> It should be OK, because the minimum stack of a (75 - 19) depth call
> chain is under 11K and within safe limits I believe.
I meant if some fancy networking options can eat those 19 frames that I
saved and crash again? I use the computer as a workstation, it doesn't
have high network load and it doesn't use any features except basic
TCP/IP.
>> Maybe a good thing would be to add a check for stack size to __do_softirq
>> and handing the softirq to ksoftirqd if there's not enough space.
>
> I'd rather it spit out a WARN_ON() message and a backtrace.
>
> Otherwise it will be considered a feature and people won't fix
> these deep call chains.
If you think that process context+network processing+hardirqs can fit into
75 nested functions... I really have no idea how much the networking
takes, given the amount of protocols and features and inability to test
them all in one lab, it looks very scary.
Mikulas
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists