lkml.org 
[lkml]   [2010]   [Apr]   [23]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 8/9] perf: Add a perf trace option to check samples ordering reliability
    Date
    To ensure sample events time reordering is reliable, add a -d option
    to perf trace to check that automatically.

    Signed-off-by: Frederic Weisbecker <fweisbec@gmail.com>
    Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
    Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
    Cc: Paul Mackerras <paulus@samba.org>
    Cc: Hitoshi Mitake <mitake@dcl.info.waseda.ac.jp>
    Cc: Ingo Molnar <mingo@elte.hu>
    Cc: Masami Hiramatsu <mhiramat@redhat.com>
    Cc: Tom Zanussi <tzanussi@gmail.com>
    ---
    tools/perf/builtin-trace.c | 12 ++++++++++++
    1 files changed, 12 insertions(+), 0 deletions(-)

    diff --git a/tools/perf/builtin-trace.c b/tools/perf/builtin-trace.c
    index 1d034f6..77f556f 100644
    --- a/tools/perf/builtin-trace.c
    +++ b/tools/perf/builtin-trace.c
    @@ -11,6 +11,8 @@

    static char const *script_name;
    static char const *generate_script_lang;
    +static bool debug_ordering;
    +static u64 last_timestamp;

    static int default_start_script(const char *script __unused,
    int argc __unused,
    @@ -87,6 +89,14 @@ static int process_sample_event(event_t *event, struct perf_session *session)
    }

    if (session->sample_type & PERF_SAMPLE_RAW) {
    + if (debug_ordering) {
    + if (data.time < last_timestamp) {
    + pr_err("Samples misordered, previous: %llu "
    + "this: %llu\n", last_timestamp,
    + data.time);
    + }
    + last_timestamp = data.time;
    + }
    /*
    * FIXME: better resolve from pid from the struct trace_entry
    * field, although it should be the same than this perf
    @@ -532,6 +542,8 @@ static const struct option options[] = {
    "generate perf-trace.xx script in specified language"),
    OPT_STRING('i', "input", &input_name, "file",
    "input file name"),
    + OPT_BOOLEAN('d', "debug-ordering", &debug_ordering,
    + "check that samples time ordering is monotonic"),

    OPT_END()
    };
    --
    1.6.2.3


    \
     
     \ /
      Last update: 2010-04-24 04:09    [W:0.040 / U:0.512 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site