lkml.org 
[lkml]   [2018]   [Feb]   [13]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[tip:perf/urgent] perf top: Check the latency of perf_top__mmap_read()
    Commit-ID:  1db6c3a2144eaf0d8aaeecf46df73106834bad75
    Gitweb: https://git.kernel.org/tip/1db6c3a2144eaf0d8aaeecf46df73106834bad75
    Author: Kan Liang <kan.liang@intel.com>
    AuthorDate: Thu, 18 Jan 2018 13:26:32 -0800
    Committer: Arnaldo Carvalho de Melo <acme@redhat.com>
    CommitDate: Tue, 6 Feb 2018 10:11:51 -0300

    perf top: Check the latency of perf_top__mmap_read()

    The latency of perf_top__mmap_read() should be lower than refresh time.
    If not, give some hints to reduce the latency.

    Signed-off-by: Kan Liang <kan.liang@intel.com>
    Acked-by: Jiri Olsa <jolsa@kernel.org>
    Cc: Andi Kleen <ak@linux.intel.com>
    Cc: Jin Yao <yao.jin@linux.intel.com>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Wang Nan <wangnan0@huawei.com>
    Link: http://lkml.kernel.org/r/1516310792-208685-18-git-send-email-kan.liang@intel.com
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    ---
    tools/perf/builtin-top.c | 9 +++++++++
    1 file changed, 9 insertions(+)

    diff --git a/tools/perf/builtin-top.c b/tools/perf/builtin-top.c
    index 2b4914f..b7c823b 100644
    --- a/tools/perf/builtin-top.c
    +++ b/tools/perf/builtin-top.c
    @@ -889,8 +889,10 @@ static void perf_top__mmap_read(struct perf_top *top)
    {
    bool overwrite = top->record_opts.overwrite;
    struct perf_evlist *evlist = top->evlist;
    + unsigned long long start, end;
    int i;

    + start = rdclock();
    if (overwrite)
    perf_evlist__toggle_bkw_mmap(evlist, BKW_MMAP_DATA_PENDING);

    @@ -901,6 +903,13 @@ static void perf_top__mmap_read(struct perf_top *top)
    perf_evlist__toggle_bkw_mmap(evlist, BKW_MMAP_EMPTY);
    perf_evlist__toggle_bkw_mmap(evlist, BKW_MMAP_RUNNING);
    }
    + end = rdclock();
    +
    + if ((end - start) > (unsigned long long)top->delay_secs * NSEC_PER_SEC)
    + ui__warning("Too slow to read ring buffer.\n"
    + "Please try increasing the period (-c) or\n"
    + "decreasing the freq (-F) or\n"
    + "limiting the number of CPUs (-C)\n");
    }

    /*
    \
     
     \ /
      Last update: 2018-02-13 13:22    [W:3.056 / U:2.476 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site