For initial perf_clock to time-of-day correlation. Signed-off-by: David Ahern <dsahern@xxxxxxxxx> --- tools/perf/util/event.c | 1 + tools/perf/util/event.h | 8 ++++++++ tools/perf/util/session.c | 4 ++++ tools/perf/util/session.h | 3 ++- 4 files changed, 15 insertions(+), 1 deletions(-) diff --git a/tools/perf/util/event.c b/tools/perf/util/event.c index 3c1b8a6..1a89a04 100644 --- a/tools/perf/util/event.c +++ b/tools/perf/util/event.c @@ -24,6 +24,7 @@ static const char *perf_event__names[] = { [PERF_RECORD_HEADER_TRACING_DATA] = "TRACING_DATA", [PERF_RECORD_HEADER_BUILD_ID] = "BUILD_ID", [PERF_RECORD_FINISHED_ROUND] = "FINISHED_ROUND", + [PERF_RECORD_REFTIME] = "REF_TIME", }; const char *perf_event__name(unsigned int id) diff --git a/tools/perf/util/event.h b/tools/perf/util/event.h index 1d7f664..f481f90 100644 --- a/tools/perf/util/event.h +++ b/tools/perf/util/event.h @@ -98,6 +98,7 @@ enum perf_user_event_type { /* above any possible kernel type */ PERF_RECORD_HEADER_TRACING_DATA = 66, PERF_RECORD_HEADER_BUILD_ID = 67, PERF_RECORD_FINISHED_ROUND = 68, + PERF_RECORD_REFTIME = 69, PERF_RECORD_HEADER_MAX }; @@ -124,6 +125,12 @@ struct tracing_data_event { u32 size; }; +struct reftime_event { + struct perf_event_header header; + struct timeval tv; + u64 nsec; +}; + union perf_event { struct perf_event_header header; struct ip_event ip; @@ -137,6 +144,7 @@ union perf_event { struct event_type_event event_type; struct tracing_data_event tracing_data; struct build_id_event build_id; + struct reftime_event reftime; }; void perf_event__print_totals(void); diff --git a/tools/perf/util/session.c b/tools/perf/util/session.c index b723f21..322632c 100644 --- a/tools/perf/util/session.c +++ b/tools/perf/util/session.c @@ -792,6 +792,10 @@ static int perf_session__process_user_event(struct perf_session *session, union return ops->build_id(event, session); case PERF_RECORD_FINISHED_ROUND: return ops->finished_round(event, session, ops); + case PERF_RECORD_REFTIME: + if (ops->reftime) + return ops->reftime(event, session); + return -EINVAL; default: return -EINVAL; } diff --git a/tools/perf/util/session.h b/tools/perf/util/session.h index de4178d..9728701 100644 --- a/tools/perf/util/session.h +++ b/tools/perf/util/session.h @@ -81,7 +81,8 @@ struct perf_event_ops { event_synth_op attr, event_type, tracing_data, - build_id; + build_id, + reftime; event_op2 finished_round; bool ordered_samples; bool ordering_requires_timestamps; -- 1.7.5.2 -- To unsubscribe from this list: send the line "unsubscribe linux-perf-users" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html