Exemplo n.º 1
0
static void graph_tracer_exit(const struct caller *this_fn, int depth)
{
	struct trace_graph_item trace = {
		.depth = depth,
		.type = TRACE_GRAPH_RETURN,
		.entry_time = entry_time[depth],
		.return_time = clock_get_time(),
	};

	pstrcpy(trace.fname, sizeof(trace.fname), this_fn->name);
	get_thread_name(trace.tname);

	trace_buffer_push(sched_getcpu(), &trace);
}
Exemplo n.º 2
0
static void graph_tracer_enter(const struct caller *this_fn, int depth)
{
	struct trace_graph_item trace = {
		.type = TRACE_GRAPH_ENTRY,
		.depth = depth,
	};

	pstrcpy(trace.fname, sizeof(trace.fname), this_fn->name);
	get_thread_name(trace.tname);

	entry_time[depth] = clock_get_time();

	trace_buffer_push(sched_getcpu(), &trace);
}
Exemplo n.º 3
0
static notrace void default_trace_graph_return(struct trace_graph_item *item)
{
	trace_buffer_push(sched_getcpu(), item);
}