Commit 07a9461d authored by Kan Liang's avatar Kan Liang Committed by Arnaldo Carvalho de Melo

perf mmap: Use the stored scope data in perf_mmap__push()

Using the 'start' and 'end' which are stored in struct perf_mmap to
replace the temporary 'start' and 'end'.
The temporary variables will be discarded later.

It doesn't need to pass 'overwrite' to perf_mmap__push(). It's stored in
struct perf_mmap.
Signed-off-by: default avatarKan Liang <kan.liang@linux.intel.com>
Acked-by: default avatarJiri Olsa <jolsa@kernel.org>
Cc: Andi Kleen <ak@linux.intel.com>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Wang Nan <wangnan0@huawei.com>
Link: http://lkml.kernel.org/r/1520350567-80082-3-git-send-email-kan.liang@linux.intel.comSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
parent 4fda3459
...@@ -533,7 +533,7 @@ static int record__mmap_read_evlist(struct record *rec, struct perf_evlist *evli ...@@ -533,7 +533,7 @@ static int record__mmap_read_evlist(struct record *rec, struct perf_evlist *evli
struct auxtrace_mmap *mm = &maps[i].auxtrace_mmap; struct auxtrace_mmap *mm = &maps[i].auxtrace_mmap;
if (maps[i].base) { if (maps[i].base) {
if (perf_mmap__push(&maps[i], overwrite, rec, record__pushfn) != 0) { if (perf_mmap__push(&maps[i], rec, record__pushfn) != 0) {
rc = -1; rc = -1;
goto out; goto out;
} }
......
...@@ -279,8 +279,8 @@ int perf_mmap__read_init(struct perf_mmap *md, bool overwrite, ...@@ -279,8 +279,8 @@ int perf_mmap__read_init(struct perf_mmap *md, bool overwrite,
return 0; return 0;
} }
int perf_mmap__push(struct perf_mmap *md, bool overwrite, int perf_mmap__push(struct perf_mmap *md, void *to,
void *to, int push(void *to, void *buf, size_t size)) int push(void *to, void *buf, size_t size))
{ {
u64 head = perf_mmap__read_head(md); u64 head = perf_mmap__read_head(md);
u64 end, start; u64 end, start;
...@@ -289,16 +289,16 @@ int perf_mmap__push(struct perf_mmap *md, bool overwrite, ...@@ -289,16 +289,16 @@ int perf_mmap__push(struct perf_mmap *md, bool overwrite,
void *buf; void *buf;
int rc = 0; int rc = 0;
rc = perf_mmap__read_init(md, overwrite, &start, &end); rc = perf_mmap__read_init(md, md->overwrite, &start, &end);
if (rc < 0) if (rc < 0)
return (rc == -EAGAIN) ? 0 : -1; return (rc == -EAGAIN) ? 0 : -1;
size = end - start; size = md->end - md->start;
if ((start & md->mask) + size != (end & md->mask)) { if ((md->start & md->mask) + size != (md->end & md->mask)) {
buf = &data[start & md->mask]; buf = &data[md->start & md->mask];
size = md->mask + 1 - (start & md->mask); size = md->mask + 1 - (md->start & md->mask);
start += size; md->start += size;
if (push(to, buf, size) < 0) { if (push(to, buf, size) < 0) {
rc = -1; rc = -1;
...@@ -306,9 +306,9 @@ int perf_mmap__push(struct perf_mmap *md, bool overwrite, ...@@ -306,9 +306,9 @@ int perf_mmap__push(struct perf_mmap *md, bool overwrite,
} }
} }
buf = &data[start & md->mask]; buf = &data[md->start & md->mask];
size = end - start; size = md->end - md->start;
start += size; md->start += size;
if (push(to, buf, size) < 0) { if (push(to, buf, size) < 0) {
rc = -1; rc = -1;
...@@ -316,7 +316,7 @@ int perf_mmap__push(struct perf_mmap *md, bool overwrite, ...@@ -316,7 +316,7 @@ int perf_mmap__push(struct perf_mmap *md, bool overwrite,
} }
md->prev = head; md->prev = head;
perf_mmap__consume(md, overwrite); perf_mmap__consume(md, md->overwrite);
out: out:
return rc; return rc;
} }
......
...@@ -93,8 +93,8 @@ union perf_event *perf_mmap__read_event(struct perf_mmap *map, ...@@ -93,8 +93,8 @@ union perf_event *perf_mmap__read_event(struct perf_mmap *map,
bool overwrite, bool overwrite,
u64 *startp, u64 end); u64 *startp, u64 end);
int perf_mmap__push(struct perf_mmap *md, bool backward, int perf_mmap__push(struct perf_mmap *md, void *to,
void *to, int push(void *to, void *buf, size_t size)); int push(void *to, void *buf, size_t size));
size_t perf_mmap__mmap_len(struct perf_mmap *map); size_t perf_mmap__mmap_len(struct perf_mmap *map);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment