From: Kan Liang <[email protected]>

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 <[email protected]>
---
 tools/perf/builtin-top.c | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/tools/perf/builtin-top.c b/tools/perf/builtin-top.c
index 721d786..f36936c 100644
--- a/tools/perf/builtin-top.c
+++ b/tools/perf/builtin-top.c
@@ -872,13 +872,23 @@ static void perf_top__mmap_read_idx(struct perf_top *top, 
int idx)
 
 static void perf_top__mmap_read(struct perf_top *top)
 {
+       unsigned long long start, end;
        int i;
 
+       start = rdclock();
        perf_evlist__toggle_bkw_mmap(top->evlist, BKW_MMAP_DATA_PENDING);
        for (i = 0; i < top->evlist->nr_mmaps; i++)
                perf_top__mmap_read_idx(top, i);
        perf_evlist__toggle_bkw_mmap(top->evlist, BKW_MMAP_EMPTY);
        perf_evlist__toggle_bkw_mmap(top->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");
+
 }
 
 static int perf_top__start_counters(struct perf_top *top)
-- 
2.5.5

Reply via email to