perf tools: Elliminate alignment holes
authorArnaldo Carvalho de Melo <acme@redhat.com>
Fri, 15 May 2015 20:29:56 +0000 (17:29 -0300)
committerArnaldo Carvalho de Melo <acme@redhat.com>
Mon, 18 May 2015 13:17:33 +0000 (10:17 -0300)
perf_evsel:

Before:

/* size: 320, cachelines: 5, members: 35 */
/* sum members: 304, holes: 3, sum holes: 16 */

After:

/* size: 304, cachelines: 5, members: 35 */
/* last cacheline: 48 bytes */

perf_evlist:

Before:

/* size: 2544, cachelines: 40, members: 17 */
/* sum members: 2533, holes: 2, sum holes: 11 */
/* last cacheline: 48 bytes */

After:

/* size: 2536, cachelines: 40, members: 17 */
/* sum members: 2533, holes: 1, sum holes: 3 */
/* last cacheline: 40 bytes */

timechart:

Before:

/* size: 288, cachelines: 5, members: 21 */
/* sum members: 271, holes: 2, sum holes: 10 */
/* padding: 7 */
/* last cacheline: 32 bytes */

After:

/* size: 272, cachelines: 5, members: 21 */
/* sum members: 271, holes: 1, sum holes: 1 */
/* last cacheline: 16 bytes */

thread:

Before:

/* size: 112, cachelines: 2, members: 15 */
/* sum members: 101, holes: 2, sum holes: 11 */
/* last cacheline: 48 bytes */

After:

/* size: 104, cachelines: 2, members: 15 */
/* sum members: 101, holes: 1, sum holes: 3 */
/* last cacheline: 40 bytes */

Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: Borislav Petkov <bp@suse.de>
Cc: David Ahern <dsahern@gmail.com>
Cc: Don Zickus <dzickus@redhat.com>
Cc: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Stephane Eranian <eranian@google.com>
Link: http://lkml.kernel.org/n/tip-a543w7zjl9yyrg9nkf1teukp@git.kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
tools/perf/builtin-timechart.c
tools/perf/util/evlist.h
tools/perf/util/evsel.h
tools/perf/util/thread.h

index 3b884e37ab8ba3e553781c43529d2ac630d16c3f..30e59620179daef63c272c3119f884a8caefd12f 100644 (file)
@@ -61,13 +61,13 @@ struct timechart {
                                tasks_only,
                                with_backtrace,
                                topology;
+       bool                    force;
        /* IO related settings */
-       u64                     io_events;
        bool                    io_only,
                                skip_eagain;
+       u64                     io_events;
        u64                     min_time,
                                merge_dist;
-       bool                    force;
 };
 
 struct per_pidcomm;
index 670e7f2114b1d0ecc47572829901d31dc784ba5b..955bf31b7dd3f2ba64b64945abcb9c719cff50b7 100644 (file)
@@ -40,6 +40,7 @@ struct perf_evlist {
        int              nr_entries;
        int              nr_groups;
        int              nr_mmaps;
+       bool             overwrite;
        size_t           mmap_len;
        int              id_pos;
        int              is_pos;
@@ -48,7 +49,6 @@ struct perf_evlist {
                int     cork_fd;
                pid_t   pid;
        } workload;
-       bool             overwrite;
        struct fdarray   pollfd;
        struct perf_mmap *mmap;
        struct thread_map *threads;
index e486151b03089720eed68436bbae7a454defb3ec..21ec08247d47783480cddd056c803f57df30a735 100644 (file)
@@ -73,7 +73,6 @@ struct perf_evsel {
        char                    *name;
        double                  scale;
        const char              *unit;
-       bool                    snapshot;
        struct event_format     *tp_format;
        union {
                void            *priv;
@@ -86,6 +85,7 @@ struct perf_evsel {
        unsigned int            sample_size;
        int                     id_pos;
        int                     is_pos;
+       bool                    snapshot;
        bool                    supported;
        bool                    needs_swap;
        bool                    no_aux_samples;
@@ -93,11 +93,11 @@ struct perf_evsel {
        bool                    system_wide;
        bool                    tracking;
        bool                    per_pkg;
-       unsigned long           *per_pkg_mask;
        /* parse modifier helper */
        int                     exclude_GH;
        int                     nr_members;
        int                     sample_read;
+       unsigned long           *per_pkg_mask;
        struct perf_evsel       *leader;
        char                    *group_name;
 };
index f33c48cfdaa090f937e7c5895d81c1a8298db0bf..a0ac0317affb5ffc46f69dc00c4c258d0c40c684 100644 (file)
@@ -25,9 +25,9 @@ struct thread {
        atomic_t                refcnt;
        char                    shortname[3];
        bool                    comm_set;
+       int                     comm_len;
        bool                    dead; /* if set thread has exited */
        struct list_head        comm_list;
-       int                     comm_len;
        u64                     db_id;
 
        void                    *priv;