perf record: Rename variable to make code clear
authorWang Nan <[email protected]>
Mon, 23 May 2016 07:13:40 +0000 (07:13 +0000)
committerArnaldo Carvalho de Melo <[email protected]>
Mon, 23 May 2016 21:22:47 +0000 (18:22 -0300)
record__mmap_read() writes data from ring buffer into perf.data.  'head'
is maintained by the kernel, points to the last written record.
'old' is maintained by perf, points to the record read in previous
round. record__mmap_read() saves data from 'old' to 'head' to
perf.data.

The names of these variables are not very intutive. In addition,
when dealing with backward writing ring buffer, the md->prev pointer
should point to 'head' instead of the last byte it got.

Add 'start' and 'end' pointer to make code clear and set md->prev to
'head' instead of the moved 'old' pointer. This patch doesn't change
behavior since:

    buf = &data[old & md->mask];
    size = head - old;
    old += size;     <--- Here, old == head

Signed-off-by: Wang Nan <[email protected]>
Cc: Jiri Olsa <[email protected]>
Cc: Masami Hiramatsu <[email protected]>
Cc: Namhyung Kim <[email protected]>
Cc: Zefan Li <[email protected]>
Cc: [email protected]
Link: http://lkml.kernel.org/r/[email protected]
Signed-off-by: He Kuang <[email protected]>
Signed-off-by: Arnaldo Carvalho de Melo <[email protected]>
tools/perf/builtin-record.c

index f302cc937ca5bdd71af98e9747749eebe939723f..73ce651c84f678cbbf8c8aaf2236b651738c6390 100644 (file)
@@ -88,17 +88,18 @@ static int record__mmap_read(struct record *rec, int idx)
        struct perf_mmap *md = &rec->evlist->mmap[idx];
        u64 head = perf_mmap__read_head(md);
        u64 old = md->prev;
+       u64 end = head, start = old;
        unsigned char *data = md->base + page_size;
        unsigned long size;
        void *buf;
        int rc = 0;
 
-       if (old == head)
+       if (start == end)
                return 0;
 
        rec->samples++;
 
-       size = head - old;
+       size = end - start;
        if (size > (unsigned long)(md->mask) + 1) {
                WARN_ONCE(1, "failed to keep up with mmap data. (warn only once)\n");
 
@@ -107,10 +108,10 @@ static int record__mmap_read(struct record *rec, int idx)
                return 0;
        }
 
-       if ((old & md->mask) + size != (head & md->mask)) {
-               buf = &data[old & md->mask];
-               size = md->mask + 1 - (old & md->mask);
-               old += size;
+       if ((start & md->mask) + size != (end & md->mask)) {
+               buf = &data[start & md->mask];
+               size = md->mask + 1 - (start & md->mask);
+               start += size;
 
                if (record__write(rec, buf, size) < 0) {
                        rc = -1;
@@ -118,16 +119,16 @@ static int record__mmap_read(struct record *rec, int idx)
                }
        }
 
-       buf = &data[old & md->mask];
-       size = head - old;
-       old += size;
+       buf = &data[start & md->mask];
+       size = end - start;
+       start += size;
 
        if (record__write(rec, buf, size) < 0) {
                rc = -1;
                goto out;
        }
 
-       md->prev = old;
+       md->prev = head;
        perf_evlist__mmap_consume(rec->evlist, idx);
 out:
        return rc;