• Arnaldo Carvalho de Melo's avatar
    perf map: Remove ->groups from 'struct map' · 7b018e29
    Arnaldo Carvalho de Melo authored
    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.orgSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
    7b018e29
map.h 4.68 KB