lkml.org 
[lkml]   [2012]   [Nov]   [20]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 3/3] perf report: Enable the runtime switching of perf data file
    Date
    This is for tui browser only. This patch will check the returned
    key of tui hists browser, if it's K_SWITH_INPUT_DATA, then recreate
    a session for the new selected data file.

    Signed-off-by: Feng Tang <feng.tang@intel.com>
    ---
    tools/perf/builtin-report.c | 22 +++++++++++++++++++---
    1 file changed, 19 insertions(+), 3 deletions(-)

    diff --git a/tools/perf/builtin-report.c b/tools/perf/builtin-report.c
    index fc25100..5392a8e 100644
    --- a/tools/perf/builtin-report.c
    +++ b/tools/perf/builtin-report.c
    @@ -427,9 +427,17 @@ static int __cmd_report(struct perf_report *rep)

    if (use_browser > 0) {
    if (use_browser == 1) {
    - perf_evlist__tui_browse_hists(session->evlist, help,
    - NULL,
    - &session->header.env);
    + ret = perf_evlist__tui_browse_hists(session->evlist,
    + help,
    + NULL,
    + &session->header.env);
    + /*
    + * Usually "ret" is the last pressed key, and we only
    + * care if the key notifies us to switch data file.
    + */
    + if (ret != K_SWITCH_INPUT_DATA)
    + ret = 0;
    +
    } else if (use_browser == 2) {
    perf_evlist__gtk_browse_hists(session->evlist, help,
    NULL);
    @@ -663,6 +671,8 @@ int cmd_report(int argc, const char **argv, const char *prefix __maybe_unused)
    else
    input_name = "perf.data";
    }
    +
    +repeat:
    session = perf_session__new(input_name, O_RDONLY,
    report.force, false, &report.tool);
    if (session == NULL)
    @@ -763,6 +773,12 @@ int cmd_report(int argc, const char **argv, const char *prefix __maybe_unused)
    }

    ret = __cmd_report(&report);
    + if (ret == K_SWITCH_INPUT_DATA) {
    + perf_session__delete(session);
    + goto repeat;
    + } else
    + ret = 0;
    +
    error:
    perf_session__delete(session);
    return ret;
    --
    1.7.9.5


    \
     
     \ /
      Last update: 2012-11-20 11:21    [W:3.605 / U:0.228 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site