+struct metricgroup_print_sys_idata {I'm doing some reorg to avoid these holes:
+ struct strlist *metriclist;
+ bool metricgroups;
+ char *filter;
+ bool raw;
+ bool details;
+ struct rblist *groups;
+};
[acme@five perf]$ pahole -C metricgroup_print_sys_idata ~/bin/perf
struct metricgroup_print_sys_idata {
struct strlist * metriclist; /* 0 8 */
_Bool metricgroups; /* 8 1 */
/* XXX 7 bytes hole, try to pack */
char * filter; /* 16 8 */
_Bool raw; /* 24 1 */
_Bool details; /* 25 1 */
/* XXX 6 bytes hole, try to pack */
struct rblist * groups; /* 32 8 */
/* size: 40, cachelines: 1, members: 6 */
/* sum members: 27, holes: 2, sum holes: 13 */
/* last cacheline: 40 bytes */
};
[acme@five perf]$
It ended up as:
[acme@five perf]$ pahole -C metricgroup_print_sys_idata ~/bin/perf
struct metricgroup_print_sys_idata {
struct strlist * metriclist; /* 0 8 */
char * filter; /* 8 8 */
struct rblist * groups; /* 16 8 */
_Bool metricgroups; /* 24 1 */
_Bool raw; /* 25 1 */
_Bool details; /* 26 1 */
/* size: 32, cachelines: 1, members: 6 */
/* padding: 5 */
/* last cacheline: 32 bytes */
};
[acme@five perf]$o