Re: [RFC 2/2] x86_64: expand kernel stack to 16K

Dave Chinner
2014-05-30T01:34:20Z

On Fri, May 30, 2014 at 09:32:19AM +0900, Minchan Kim wrote:
> On Fri, May 30, 2014 at 10:21:13AM +1000, Dave Chinner wrote:
> > On Thu, May 29, 2014 at 08:06:49PM -0400, Dave Jones wrote:
> > > On Fri, May 30, 2014 at 09:53:08AM +1000, Dave Chinner wrote:
> > >
> > > > That sounds like a plan. Perhaps it would be useful to add a
> > > > WARN_ON_ONCE(stack_usage > 8k) (or some other arbitrary depth beyond
> > > > 8k) so that we get some indication that we're hitting a deep stack
> > > > but the system otherwise keeps functioning. That gives us some
> > > > motivation to keep stack usage down but isn't a fatal problem like
> > > > it is now....
> > >
> > > We have check_stack_usage() and DEBUG_STACK_USAGE for this.
> > > Though it needs some tweaking if we move to 16K
> >
> > Right, but it doesn't throw loud warnings when a specific threshold
> > is reached - it just issues a quiet message when a process exits
> > telling you what the maximum was without giving us a stack to chew
> > on....
>
> But we could enhance the inform so notice the risk to the user.
> as follow
>
> ...
> "kworker/u24:1 (94) used greatest stack depth: 8K bytes left, it means
> there is some horrible stack hogger in your kernel. Please report it
> the LKML and enable stacktrace to investigate who is culprit"

That, however, presumes that a user can reproduce the problem on
demand. Experience tells me that this is the exception rather than
the norm for production systems, and so capturing the stack in real
time is IMO the only useful thing we could add...

Cheers,

Dave.
--
Dave Chinner
david@fromorbit.com