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: Kan Liang <kan.liang@linux.intel.com>
Acked-by: Jiri 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.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
This commit is contained in:
Kan Liang 2018-03-06 10:36:02 -05:00 коммит произвёл Arnaldo Carvalho de Melo
Родитель 4fda3459e3
Коммит 07a9461da6
3 изменённых файлов: 15 добавлений и 15 удалений

Просмотреть файл

@ -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;
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;
goto out;
}

Просмотреть файл

@ -279,8 +279,8 @@ int perf_mmap__read_init(struct perf_mmap *md, bool overwrite,
return 0;
}
int perf_mmap__push(struct perf_mmap *md, bool overwrite,
void *to, int push(void *to, void *buf, size_t size))
int perf_mmap__push(struct perf_mmap *md, void *to,
int push(void *to, void *buf, size_t size))
{
u64 head = perf_mmap__read_head(md);
u64 end, start;
@ -289,16 +289,16 @@ int perf_mmap__push(struct perf_mmap *md, bool overwrite,
void *buf;
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)
return (rc == -EAGAIN) ? 0 : -1;
size = end - start;
size = md->end - md->start;
if ((start & md->mask) + size != (end & md->mask)) {
buf = &data[start & md->mask];
size = md->mask + 1 - (start & md->mask);
start += size;
if ((md->start & md->mask) + size != (md->end & md->mask)) {
buf = &data[md->start & md->mask];
size = md->mask + 1 - (md->start & md->mask);
md->start += size;
if (push(to, buf, size) < 0) {
rc = -1;
@ -306,9 +306,9 @@ int perf_mmap__push(struct perf_mmap *md, bool overwrite,
}
}
buf = &data[start & md->mask];
size = end - start;
start += size;
buf = &data[md->start & md->mask];
size = md->end - md->start;
md->start += size;
if (push(to, buf, size) < 0) {
rc = -1;
@ -316,7 +316,7 @@ int perf_mmap__push(struct perf_mmap *md, bool overwrite,
}
md->prev = head;
perf_mmap__consume(md, overwrite);
perf_mmap__consume(md, md->overwrite);
out:
return rc;
}

Просмотреть файл

@ -93,8 +93,8 @@ union perf_event *perf_mmap__read_event(struct perf_mmap *map,
bool overwrite,
u64 *startp, u64 end);
int perf_mmap__push(struct perf_mmap *md, bool backward,
void *to, int push(void *to, void *buf, size_t size));
int perf_mmap__push(struct perf_mmap *md, void *to,
int push(void *to, void *buf, size_t size));
size_t perf_mmap__mmap_len(struct perf_mmap *map);