On Wed, 12 Feb 2014 03:13:33 -0500
Tejun Heo <t...@kernel.org> wrote:

> On Tue, Feb 11, 2014 at 10:59:58PM -0800, Linus Torvalds wrote:
> > There's a lot of 200+ byte stack frames in block/blk-core.s, and they
> > all seem to be of the type perf_trace_block_buffer() - things created
> > with DECLARE_EVENT_CLASS(), afaik. Why they all have 200+ bytes of
> > frame, I have no idea. That sounds like a potential disaster too,
> > although hopefully it's mostly leaf functions - but leaf functions
> > *deep* in the callchain. Tejun? Steven, why _do_ they end up with such
> > huge frames?
> 
> It looks like they're essentially the same for all the automatically
> generated trace functions.  I'm seeing 232 byte stack frame in most of
> them.  If I'm not completely confused by these macros, these are
> generated by DECLARE_EVENT_CLASS() in include/trace/ftrace.h and
> contains struct pt_regs in the stack frame which is already 168 bytes,
> so that seems like the culprit.  No idea whether this is something
> avoidable.  At least they shouldn't nest in any way.  Steven?

They shouldn't nest. But if the perf tracepoint is active, I don't know
how much more of the stack is used in the functions that tracepoint
calls.

-- Steve
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to