[PATCH v6 08/10] perf metricgroup: Support printing metric groups for system PMUs
John Garry
john.garry at huawei.com
Mon Dec 7 13:04:21 EST 2020
On 07/12/2020 17:23, Arnaldo Carvalho de Melo wrote:
>> +struct metricgroup_print_sys_idata {
>> + struct strlist *metriclist;
>> + bool metricgroups;
>> + char *filter;
>> + bool raw;
>> + bool details;
>> + struct rblist *groups;
>> +};
> I'm doing some reorg to avoid these holes:
>
> [acme at 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 at five perf]$
>
> It ended up as:
>
> [acme at 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 at five perf]$o
>
Hi Arnaldo,
OK, I'll be less wasteful in my struct organization.
Thanks,
John
More information about the linux-arm-kernel
mailing list