lkml.org 
[lkml]   [2015]   [Mar]   [31]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH V7 24/25] perf auxtrace: Add option to synthesize events for transactions
    Date
    Add AUX area tracing option 'x' to synthesize events for
    transactions. This will be used by Intel PT to synthesize
    an event record for each TSX start, commit or abort.

    Signed-off-by: Adrian Hunter <adrian.hunter@intel.com>
    ---
    tools/perf/Documentation/perf-report.txt | 9 +++++----
    tools/perf/Documentation/perf-script.txt | 9 +++++----
    tools/perf/util/auxtrace.c | 5 ++++-
    tools/perf/util/auxtrace.h | 2 ++
    4 files changed, 16 insertions(+), 9 deletions(-)

    diff --git a/tools/perf/Documentation/perf-report.txt b/tools/perf/Documentation/perf-report.txt
    index 66e3df3..f626fb2 100644
    --- a/tools/perf/Documentation/perf-report.txt
    +++ b/tools/perf/Documentation/perf-report.txt
    @@ -331,11 +331,12 @@ OPTIONS
    b synthesize branches events
    c synthesize branches events (calls only)
    r synthesize branches events (returns only)
    + x synthesize transactions events
    e synthesize error events
    d create a debug log
    - g synthesize a call chain for instructions events
    + g synthesize a call chain (use with i or x)

    - The default is all events i.e. the same as -Zibe
    + The default is all events i.e. the same as -Zibxe

    In addition, the period (default 100000) for instructions events
    can be specified in units of:
    @@ -346,8 +347,8 @@ OPTIONS
    us microseconds
    ns nanoseconds (default)

    - Also the call chain size (default 16, max. 1024) for instructions
    - events can be specified.
    + Also the call chain size (default 16, max. 1024) for instructions or
    + transactions events can be specified.

    To disable decoding entirely, use --no-itrace.

    diff --git a/tools/perf/Documentation/perf-script.txt b/tools/perf/Documentation/perf-script.txt
    index 0befc9c..8ea300d 100644
    --- a/tools/perf/Documentation/perf-script.txt
    +++ b/tools/perf/Documentation/perf-script.txt
    @@ -229,11 +229,12 @@ OPTIONS
    b synthesize branches events
    c synthesize branches events (calls only)
    r synthesize branches events (returns only)
    + x synthesize transactions events
    e synthesize error events
    d create a debug log
    - g synthesize a call chain for instructions events
    + g synthesize a call chain (use with i or x)

    - The default is all events i.e. the same as -Zibe
    + The default is all events i.e. the same as -Zibxe

    In addition, the period (default 100000) for instructions events
    can be specified in units of:
    @@ -244,8 +245,8 @@ OPTIONS
    us microseconds
    ns nanoseconds (default)

    - Also the call chain size (default 16, max. 1024) for instructions
    - events can be specified.
    + Also the call chain size (default 16, max. 1024) for instructions or
    + transactions events can be specified.

    To disable decoding entirely, use --no-itrace.

    diff --git a/tools/perf/util/auxtrace.c b/tools/perf/util/auxtrace.c
    index fb68551..c04c374 100644
    --- a/tools/perf/util/auxtrace.c
    +++ b/tools/perf/util/auxtrace.c
    @@ -884,6 +884,7 @@ void itrace_synth_opts__set_default(struct itrace_synth_opts *synth_opts)
    {
    synth_opts->instructions = true;
    synth_opts->branches = true;
    + synth_opts->transactions = true;
    synth_opts->errors = true;
    synth_opts->period_type = PERF_ITRACE_DEFAULT_PERIOD_TYPE;
    synth_opts->period = PERF_ITRACE_DEFAULT_PERIOD;
    @@ -951,6 +952,9 @@ int itrace_parse_synth_opts(const struct option *opt, const char *str,
    case 'b':
    synth_opts->branches = true;
    break;
    + case 'x':
    + synth_opts->transactions = true;
    + break;
    case 'e':
    synth_opts->errors = true;
    break;
    @@ -966,7 +970,6 @@ int itrace_parse_synth_opts(const struct option *opt, const char *str,
    synth_opts->returns = true;
    break;
    case 'g':
    - synth_opts->instructions = true;
    synth_opts->callchain = true;
    synth_opts->callchain_sz =
    PERF_ITRACE_DEFAULT_CALLCHAIN_SZ;
    diff --git a/tools/perf/util/auxtrace.h b/tools/perf/util/auxtrace.h
    index 670271b..4e1651c 100644
    --- a/tools/perf/util/auxtrace.h
    +++ b/tools/perf/util/auxtrace.h
    @@ -54,6 +54,7 @@ enum itrace_period_type {
    * because 'perf inject' will write it out
    * @instructions: whether to synthesize 'instructions' events
    * @branches: whether to synthesize 'branches' events
    + * @transactions: whether to synthesize events for transactions
    * @errors: whether to synthesize decoder error events
    * @dont_decode: whether to skip decoding entirely
    * @log: write a decoding log
    @@ -69,6 +70,7 @@ struct itrace_synth_opts {
    bool inject;
    bool instructions;
    bool branches;
    + bool transactions;
    bool errors;
    bool dont_decode;
    bool log;
    --
    1.9.1


    \
     
     \ /
      Last update: 2015-03-31 14:21    [W:4.966 / U:0.316 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site