diff --git a/[refs] b/[refs] index 06b79a90d562..df6e58337c09 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: c64e148a3be3cb786534ad38298c25c833116c26 +refs/heads/master: 6249687f76b69cc0b2ad34636f4a18d693ef3262 diff --git a/trunk/include/linux/trace_clock.h b/trunk/include/linux/trace_clock.h index 7a8130384087..4eb490237d4c 100644 --- a/trunk/include/linux/trace_clock.h +++ b/trunk/include/linux/trace_clock.h @@ -15,5 +15,6 @@ extern u64 notrace trace_clock_local(void); extern u64 notrace trace_clock(void); extern u64 notrace trace_clock_global(void); +extern u64 notrace trace_clock_counter(void); #endif /* _LINUX_TRACE_CLOCK_H */ diff --git a/trunk/kernel/trace/trace.c b/trunk/kernel/trace/trace.c index b41907000bc6..4b8df0dc9358 100644 --- a/trunk/kernel/trace/trace.c +++ b/trunk/kernel/trace/trace.c @@ -435,6 +435,7 @@ static struct { } trace_clocks[] = { { trace_clock_local, "local" }, { trace_clock_global, "global" }, + { trace_clock_counter, "counter" }, }; int trace_clock_id; diff --git a/trunk/kernel/trace/trace_clock.c b/trunk/kernel/trace/trace_clock.c index 6302747a1398..394783531cbb 100644 --- a/trunk/kernel/trace/trace_clock.c +++ b/trunk/kernel/trace/trace_clock.c @@ -113,3 +113,15 @@ u64 notrace trace_clock_global(void) return now; } + +static atomic64_t trace_counter; + +/* + * trace_clock_counter(): simply an atomic counter. + * Use the trace_counter "counter" for cases where you do not care + * about timings, but are interested in strict ordering. + */ +u64 notrace trace_clock_counter(void) +{ + return atomic64_add_return(1, &trace_counter); +}