diff options
author | Kan Liang <kan.liang@intel.com> | 2018-01-18 16:26:22 -0500 |
---|---|---|
committer | Arnaldo Carvalho de Melo <acme@redhat.com> | 2018-02-15 07:53:15 -0500 |
commit | ee023de05f35484691f7d9e5c1f92195ac4d64d2 (patch) | |
tree | 8a8457fb8ee19410155576a65f6f197c0d53342f | |
parent | b4b036b4c76341a5034e872aca3727c4988a7304 (diff) |
perf mmap: Introduce perf_mmap__read_done()
The direction of overwrite mode is backward. The last perf_mmap__read()
will set tail to map->prev. Need to correct the map->prev to head which
is the end of next read.
It will be used later.
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-8-git-send-email-kan.liang@intel.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
-rw-r--r-- | tools/perf/util/mmap.c | 11 | ||||
-rw-r--r-- | tools/perf/util/mmap.h | 1 |
2 files changed, 12 insertions, 0 deletions
diff --git a/tools/perf/util/mmap.c b/tools/perf/util/mmap.c index 125bfda9d037..4f59eaefc706 100644 --- a/tools/perf/util/mmap.c +++ b/tools/perf/util/mmap.c | |||
@@ -338,3 +338,14 @@ int perf_mmap__push(struct perf_mmap *md, bool overwrite, | |||
338 | out: | 338 | out: |
339 | return rc; | 339 | return rc; |
340 | } | 340 | } |
341 | |||
342 | /* | ||
343 | * Mandatory for overwrite mode | ||
344 | * The direction of overwrite mode is backward. | ||
345 | * The last perf_mmap__read() will set tail to map->prev. | ||
346 | * Need to correct the map->prev to head which is the end of next read. | ||
347 | */ | ||
348 | void perf_mmap__read_done(struct perf_mmap *map) | ||
349 | { | ||
350 | map->prev = perf_mmap__read_head(map); | ||
351 | } | ||
diff --git a/tools/perf/util/mmap.h b/tools/perf/util/mmap.h index 9ab2b48df65b..95549d4af943 100644 --- a/tools/perf/util/mmap.h +++ b/tools/perf/util/mmap.h | |||
@@ -96,4 +96,5 @@ size_t perf_mmap__mmap_len(struct perf_mmap *map); | |||
96 | 96 | ||
97 | int perf_mmap__read_init(struct perf_mmap *md, bool overwrite, | 97 | int perf_mmap__read_init(struct perf_mmap *md, bool overwrite, |
98 | u64 *startp, u64 *endp); | 98 | u64 *startp, u64 *endp); |
99 | void perf_mmap__read_done(struct perf_mmap *map); | ||
99 | #endif /*__PERF_MMAP_H */ | 100 | #endif /*__PERF_MMAP_H */ |