Re: [PATCH 6/6] x86: Allow disabling HW_BREAKPOINTS and PERF_EVENTS

From: Steven Rostedt
Date: Tue Oct 08 2013 - 11:35:29 EST


On Tue, Oct 08, 2013 at 08:59:38AM +0200, Ingo Molnar wrote:
>
> Secondly and more importantly, visualized with relative sizes, in a
> feature matrix, makes it clearer what's going on with vmlinux .text:
>
> perf-OFF perf-ON
>
> ftrace-OFF 0 +151k
>
> ftrace-ON +897k +1142k
>
> So basically ftrace is causing a big chunk of the instrumentation size
> increase. With tons of tracers and lots of kernel subsystems built into
> your .config that's a lot of nice instrumentation functionality and it's
> thus also a natural end result IMO.

I'm curious what you turned on for between the "ftrace-OFF" and "ftrace-ON"?

Technically, ftrace is just the infrastructure for the /debug/tracing directory
and the function tracer. And there's lots of options to turn on or off:

CONFIG_TRACER_MAX_TRACE=y
CONFIG_RING_BUFFER_ALLOW_SWAP=y
CONFIG_FUNCTION_TRACER=y
CONFIG_FUNCTION_GRAPH_TRACER=y
CONFIG_SCHED_TRACER=y
CONFIG_FTRACE_SYSCALLS=y
CONFIG_TRACER_SNAPSHOT=y
CONFIG_DYNAMIC_FTRACE=y
CONFIG_DYNAMIC_FTRACE_WITH_REGS=y
CONFIG_FTRACE_MCOUNT_RECORD=y

The one thing that you didn't post was CONFIG_EVENT_TRACING. This is where
a lot of bloat can come from, as this enables the infrastructure for
tracepoints. This is also needed by perf to trace most sw events.

The trace event infrastructure that both perf and ftrace uses (as well
as other tracers and tools) is well known to cause bloat in the kernel.
There's patches to help make it more bearable, but there's more work to
be done.

Currently, ftrace selects events, but that was only because you suggested
to do so as events are so valuable in tracing.

-- Steve

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