Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 100560
b: refs/heads/master
c: 41bc814
h: refs/heads/master
v: v3
  • Loading branch information
Steven Rostedt authored and Thomas Gleixner committed May 26, 2008
1 parent a2cba0c commit 0b75440
Show file tree
Hide file tree
Showing 5 changed files with 20 additions and 14 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 41c52c0db9607e59f90da7da5309489fa06e887f
refs/heads/master: 41bc8144d02028133bcd1d545023c6f49e8b2411
3 changes: 0 additions & 3 deletions trunk/kernel/trace/trace.c
Original file line number Diff line number Diff line change
Expand Up @@ -652,9 +652,6 @@ static char saved_cmdlines[SAVED_CMDLINES][TASK_COMM_LEN];
static int cmdline_idx;
static DEFINE_SPINLOCK(trace_cmdline_lock);

/* trace in all context switches */
atomic_t trace_record_cmdline_enabled __read_mostly;

/* temporary disable recording */
atomic_t trace_record_cmdline_disabled __read_mostly;

Expand Down
4 changes: 2 additions & 2 deletions trunk/kernel/trace/trace.h
Original file line number Diff line number Diff line change
Expand Up @@ -218,6 +218,8 @@ void trace_function(struct trace_array *tr,

void tracing_start_function_trace(void);
void tracing_stop_function_trace(void);
void tracing_start_cmdline_record(void);
void tracing_stop_cmdline_record(void);
int register_tracer(struct tracer *type);
void unregister_tracer(struct tracer *type);

Expand All @@ -226,8 +228,6 @@ extern unsigned long nsecs_to_usecs(unsigned long nsecs);
extern unsigned long tracing_max_latency;
extern unsigned long tracing_thresh;

extern atomic_t trace_record_cmdline_enabled;

void update_max_tr(struct trace_array *tr, struct task_struct *tsk, int cpu);
void update_max_tr_single(struct trace_array *tr,
struct task_struct *tsk, int cpu);
Expand Down
4 changes: 2 additions & 2 deletions trunk/kernel/trace/trace_functions.c
Original file line number Diff line number Diff line change
Expand Up @@ -29,14 +29,14 @@ static void function_reset(struct trace_array *tr)
static void start_function_trace(struct trace_array *tr)
{
function_reset(tr);
atomic_inc(&trace_record_cmdline_enabled);
tracing_start_cmdline_record();
tracing_start_function_trace();
}

static void stop_function_trace(struct trace_array *tr)
{
tracing_stop_function_trace();
atomic_dec(&trace_record_cmdline_enabled);
tracing_stop_cmdline_record();
}

static void function_trace_init(struct trace_array *tr)
Expand Down
21 changes: 15 additions & 6 deletions trunk/kernel/trace/trace_sched_switch.c
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,9 @@ sched_switch_func(void *private, void *__rq, struct task_struct *prev,
long disabled;
int cpu;

tracing_record_cmdline(prev);
tracing_record_cmdline(next);

if (!tracer_enabled)
return;

Expand Down Expand Up @@ -63,8 +66,6 @@ sched_switch_callback(void *probe_data, void *call_data,
prev = va_arg(*args, typeof(prev));
next = va_arg(*args, typeof(next));

tracing_record_cmdline(prev);

/*
* If tracer_switch_func only points to the local
* switch func, it still needs the ptr passed to it.
Expand Down Expand Up @@ -213,18 +214,26 @@ void tracing_stop_sched_switch(void)
tracing_sched_unregister();
}

void tracing_start_cmdline_record(void)
{
tracing_start_sched_switch();
}

void tracing_stop_cmdline_record(void)
{
tracing_stop_sched_switch();
}

static void start_sched_trace(struct trace_array *tr)
{
sched_switch_reset(tr);
atomic_inc(&trace_record_cmdline_enabled);
tracer_enabled = 1;
tracing_start_sched_switch();
tracing_start_cmdline_record();
}

static void stop_sched_trace(struct trace_array *tr)
{
tracing_stop_sched_switch();
atomic_dec(&trace_record_cmdline_enabled);
tracing_stop_cmdline_record();
tracer_enabled = 0;
}

Expand Down

0 comments on commit 0b75440

Please sign in to comment.