Skip to content

Commit

Permalink
tracing: trace_stat.c cleanup
Browse files Browse the repository at this point in the history
Impact: cleanup

- whitespace / code alignment cleanups
- avoid unnecessary forward prototype by reordering functions

Signed-off-by: Ingo Molnar <mingo@elte.hu>
  • Loading branch information
Ingo Molnar committed Jan 15, 2009
1 parent 42fab4b commit 5592217
Showing 1 changed file with 71 additions and 76 deletions.
147 changes: 71 additions & 76 deletions kernel/trace/trace_stat.c
Original file line number Diff line number Diff line change
Expand Up @@ -17,16 +17,16 @@

/* List of stat entries from a tracer */
struct trace_stat_list {
struct list_head list;
void *stat;
struct list_head list;
void *stat;
};

/* A stat session is the stats output in one file */
struct tracer_stat_session {
struct list_head session_list;
struct tracer_stat *ts;
struct list_head stat_list;
struct mutex stat_mutex;
struct tracer_stat *ts;
struct list_head stat_list;
struct mutex stat_mutex;
struct dentry *file;
};

Expand All @@ -35,7 +35,7 @@ static LIST_HEAD(all_stat_sessions);
static DEFINE_MUTEX(all_stat_sessions_mutex);

/* The root directory for all stat files */
static struct dentry *stat_dir;
static struct dentry *stat_dir;


static void reset_stat_session(struct tracer_stat_session *session)
Expand All @@ -56,71 +56,6 @@ static void destroy_session(struct tracer_stat_session *session)
kfree(session);
}


static int init_stat_file(struct tracer_stat_session *session);

int register_stat_tracer(struct tracer_stat *trace)
{
struct tracer_stat_session *session, *node, *tmp;
int ret;

if (!trace)
return -EINVAL;

if (!trace->stat_start || !trace->stat_next || !trace->stat_show)
return -EINVAL;

/* Already registered? */
mutex_lock(&all_stat_sessions_mutex);
list_for_each_entry_safe(node, tmp, &all_stat_sessions, session_list) {
if (node->ts == trace) {
mutex_unlock(&all_stat_sessions_mutex);
return -EINVAL;
}
}
mutex_unlock(&all_stat_sessions_mutex);

/* Init the session */
session = kmalloc(sizeof(struct tracer_stat_session), GFP_KERNEL);
if (!session)
return -ENOMEM;

session->ts = trace;
INIT_LIST_HEAD(&session->session_list);
INIT_LIST_HEAD(&session->stat_list);
mutex_init(&session->stat_mutex);
session->file = NULL;

ret = init_stat_file(session);
if (ret) {
destroy_session(session);
return ret;
}

/* Register */
mutex_lock(&all_stat_sessions_mutex);
list_add_tail(&session->session_list, &all_stat_sessions);
mutex_unlock(&all_stat_sessions_mutex);

return 0;
}

void unregister_stat_tracer(struct tracer_stat *trace)
{
struct tracer_stat_session *node, *tmp;

mutex_lock(&all_stat_sessions_mutex);
list_for_each_entry_safe(node, tmp, &all_stat_sessions, session_list) {
if (node->ts == trace) {
list_del(&node->session_list);
destroy_session(node);
break;
}
}
mutex_unlock(&all_stat_sessions_mutex);
}


/*
* For tracers that don't provide a stat_cmp callback.
* This one will force an immediate insertion on tail of
Expand Down Expand Up @@ -252,10 +187,10 @@ static int stat_seq_show(struct seq_file *s, void *v)
}

static const struct seq_operations trace_stat_seq_ops = {
.start = stat_seq_start,
.next = stat_seq_next,
.stop = stat_seq_stop,
.show = stat_seq_show
.start = stat_seq_start,
.next = stat_seq_next,
.stop = stat_seq_stop,
.show = stat_seq_show
};

/* The session stat is refilled and resorted at each stat file opening */
Expand All @@ -275,7 +210,6 @@ static int tracing_stat_open(struct inode *inode, struct file *file)
return ret;
}


/*
* Avoid consuming memory with our now useless list.
*/
Expand Down Expand Up @@ -322,3 +256,64 @@ static int init_stat_file(struct tracer_stat_session *session)
return -ENOMEM;
return 0;
}

int register_stat_tracer(struct tracer_stat *trace)
{
struct tracer_stat_session *session, *node, *tmp;
int ret;

if (!trace)
return -EINVAL;

if (!trace->stat_start || !trace->stat_next || !trace->stat_show)
return -EINVAL;

/* Already registered? */
mutex_lock(&all_stat_sessions_mutex);
list_for_each_entry_safe(node, tmp, &all_stat_sessions, session_list) {
if (node->ts == trace) {
mutex_unlock(&all_stat_sessions_mutex);
return -EINVAL;
}
}
mutex_unlock(&all_stat_sessions_mutex);

/* Init the session */
session = kmalloc(sizeof(struct tracer_stat_session), GFP_KERNEL);
if (!session)
return -ENOMEM;

session->ts = trace;
INIT_LIST_HEAD(&session->session_list);
INIT_LIST_HEAD(&session->stat_list);
mutex_init(&session->stat_mutex);
session->file = NULL;

ret = init_stat_file(session);
if (ret) {
destroy_session(session);
return ret;
}

/* Register */
mutex_lock(&all_stat_sessions_mutex);
list_add_tail(&session->session_list, &all_stat_sessions);
mutex_unlock(&all_stat_sessions_mutex);

return 0;
}

void unregister_stat_tracer(struct tracer_stat *trace)
{
struct tracer_stat_session *node, *tmp;

mutex_lock(&all_stat_sessions_mutex);
list_for_each_entry_safe(node, tmp, &all_stat_sessions, session_list) {
if (node->ts == trace) {
list_del(&node->session_list);
destroy_session(node);
break;
}
}
mutex_unlock(&all_stat_sessions_mutex);
}

0 comments on commit 5592217

Please sign in to comment.