[RFC PATCH 21/30 v3] Sort trace by timestamp

Steven Rostedt
2008-01-15T20:52:49Z

[-- Attachment #1: mcount-tracer-sort-by-time.patch --]
[-- Type: text/plain, Size: 1773 bytes --]

Now that each entry has a reliable timestamp, we can
use the timestamp as the source of sorting the trace and
remove the atomic increment.

Signed-off-by: Steven Rostedt <srostedt@redhat.com>
---
lib/tracing/tracer.c | 3 +--
lib/tracing/tracer.h | 2 --
2 files changed, 1 insertion(+), 4 deletions(-)

Index: linux-compile.git/lib/tracing/tracer.c
===================================================================
--- linux-compile.git.orig/lib/tracing/tracer.c 2008-01-14 13:14:14.000000000 -0500
+++ linux-compile.git/lib/tracing/tracer.c 2008-01-14 14:57:40.000000000 -0500
@@ -60,7 +60,6 @@ mctracer_add_trace_entry(struct mctracer
atomic_inc(&data->underrun);

entry = data->trace + idx * MCTRACER_ENTRY_SIZE;
- entry->idx = atomic_inc_return(&tr->cnt);
entry->ip = ip;
entry->parent_ip = parent_ip;
entry->pid = tsk->pid;
@@ -152,7 +151,7 @@ static void *find_next_entry(struct mctr
if (!tr->data[i]->trace)
continue;
ent = mctracer_entry_idx(tr, iter->next_idx[i], i);
- if (ent && (!next || next->idx > ent->idx)) {
+ if (ent && (!next || next->t > ent->t)) {
next = ent;
next_i = i;
}
Index: linux-compile.git/lib/tracing/tracer.h
===================================================================
--- linux-compile.git.orig/lib/tracing/tracer.h 2008-01-14 13:14:14.000000000 -0500
+++ linux-compile.git/lib/tracing/tracer.h 2008-01-14 14:57:38.000000000 -0500
@@ -6,7 +6,6 @@

struct mctracer_entry {
unsigned long long t;
- unsigned long idx;
unsigned long ip;
unsigned long parent_ip;
char comm[TASK_COMM_LEN];
@@ -24,7 +23,6 @@ struct mctracer_trace {
unsigned long entries;
long ctrl;
unsigned long iter_flags;
- atomic_t cnt;
struct mctracer_trace_cpu *data[NR_CPUS];
};

--