perf mmap: Use the stored scope data in perf_mmap__push()
authorKan Liang <kan.liang@linux.intel.com>
Tue, 6 Mar 2018 15:36:02 +0000 (10:36 -0500)
committerArnaldo Carvalho de Melo <acme@redhat.com>
Thu, 8 Mar 2018 13:05:51 +0000 (10:05 -0300)
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>
tools/perf/builtin-record.c
tools/perf/util/mmap.c
tools/perf/util/mmap.h

index 14d82f0fe5cc694939a7ede5fda2887b86cd685c..753ffcecf2547f1fadba993c738350d7ea6a301b 100644 (file)
@@ -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;
                        }
index 09acaf7392bb6b69b9b1d8b4425e2ad6923715a4..8c1d033638c2478a3edf82dde8fdd1bba5f81235 100644 (file)
@@ -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;
 }
index 9359e934ab14a3a5df0b49b216d60f5c4133f063..65f5b26d86682f18da09166dda5f7be10ee4166e 100644 (file)
@@ -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);