Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 097d036a authored by Frederic Weisbecker's avatar Frederic Weisbecker Committed by Ingo Molnar
Browse files

tracing/fastboot: only trace non-module initcalls



At this time, only built-in initcalls interest us.
We can't really produce a relevant graph if we include
the modules initcall too.

I had good results after this patch (see svg in attachment).

Signed-off-by: default avatarFrederic Weisbecker <fweisbec@gmail.com>
Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
parent 6450c1d3
Loading
Loading
Loading
Loading
+2 −0
Original line number Original line Diff line number Diff line
@@ -225,9 +225,11 @@ struct boot_trace {
#ifdef CONFIG_BOOT_TRACER
#ifdef CONFIG_BOOT_TRACER
extern void trace_boot(struct boot_trace *it, initcall_t fn);
extern void trace_boot(struct boot_trace *it, initcall_t fn);
extern void start_boot_trace(void);
extern void start_boot_trace(void);
extern void stop_boot_trace(void);
#else
#else
static inline void trace_boot(struct boot_trace *it, initcall_t fn) { }
static inline void trace_boot(struct boot_trace *it, initcall_t fn) { }
static inline void start_boot_trace(void) { }
static inline void start_boot_trace(void) { }
static inline void stop_boot_trace(void) { }
#endif
#endif




+1 −0
Original line number Original line Diff line number Diff line
@@ -886,6 +886,7 @@ static int __init kernel_init(void * unused)
	 * we're essentially up and running. Get rid of the
	 * we're essentially up and running. Get rid of the
	 * initmem segments and start the user-mode stuff..
	 * initmem segments and start the user-mode stuff..
	 */
	 */
	stop_boot_trace();
	init_post();
	init_post();
	return 0;
	return 0;
}
}
+8 −3
Original line number Original line Diff line number Diff line
@@ -22,11 +22,16 @@ void start_boot_trace(void)
	trace_boot_enabled = 1;
	trace_boot_enabled = 1;
}
}


void stop_boot_trace(struct trace_array *tr)
void stop_boot_trace(void)
{
{
	trace_boot_enabled = 0;
	trace_boot_enabled = 0;
}
}


void reset_boot_trace(struct trace_array *tr)
{
	stop_boot_trace();
}

static void boot_trace_init(struct trace_array *tr)
static void boot_trace_init(struct trace_array *tr)
{
{
	int cpu;
	int cpu;
@@ -43,7 +48,7 @@ static void boot_trace_ctrl_update(struct trace_array *tr)
	if (tr->ctrl)
	if (tr->ctrl)
		start_boot_trace();
		start_boot_trace();
	else
	else
		stop_boot_trace(tr);
		stop_boot_trace();
}
}


static enum print_line_t initcall_print_line(struct trace_iterator *iter)
static enum print_line_t initcall_print_line(struct trace_iterator *iter)
@@ -81,7 +86,7 @@ struct tracer boot_tracer __read_mostly =
{
{
	.name		= "initcall",
	.name		= "initcall",
	.init		= boot_trace_init,
	.init		= boot_trace_init,
	.reset		= stop_boot_trace,
	.reset		= reset_boot_trace,
	.ctrl_update	= boot_trace_ctrl_update,
	.ctrl_update	= boot_trace_ctrl_update,
	.print_line	= initcall_print_line,
	.print_line	= initcall_print_line,
};
};