perf map: Remove ->groups from 'struct map'
authorArnaldo Carvalho de Melo <acme@redhat.com>
Mon, 4 Nov 2019 19:55:53 +0000 (16:55 -0300)
committerArnaldo Carvalho de Melo <acme@redhat.com>
Tue, 12 Nov 2019 11:20:53 +0000 (08:20 -0300)
commit7b018e298752b9bcaf34eba8e1d3c08e3207dfd8
treebf889f007612ff4b27e5d9f114dab8ba8e199ed2
parent3f662fc08dddebd7bab654eada1f3e7568959eef
perf map: Remove ->groups from 'struct map'

With this 'struct map' uses a bit over 3 cachelines:

  $ pahole -C map ~/bin/perf
  <SNIP>
   /* --- cacheline 2 boundary (128 bytes) --- */
   u64                        (*unmap_ip)(struct map *, u64); /*   128     8 */
   struct dso *               dso;                            /*   136     8 */
   refcount_t                 refcnt;                         /*   144     4 */

   /* size: 152, cachelines: 3, members: 18 */
   /* sum members: 145, holes: 1, sum holes: 3 */
   /* padding: 4 */
   /* forced alignments: 2 */
   /* last cacheline: 24 bytes */
  } __attribute__((__aligned__(8)));
  $

We probably can move map->map/unmap_ip() moved to 'struct map_groups',
that will shave more 16 bytes, getting this almost to two cachelines.

Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: Andi Kleen <ak@linux.intel.com>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Namhyung Kim <namhyung@kernel.org>
Link: https://lkml.kernel.org/n/tip-ymlv3nzpofv2fugnjnizkrwy@git.kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
tools/perf/util/map.c
tools/perf/util/map.h