From: "Steven Rostedt (VMware)" <rostedt@xxxxxxxxxxx> Move the unsigned long long trace_id out from between the boolean sync_enable and the int ts_samples_count, which removes the gap in the structure, making the structure size drop from 32 bytes to 24, as displayed by pahole. Before: struct host_trace_info { _Bool sync_enable; /* 0 1 */ /* XXX 7 bytes hole, try to pack */ long long unsigned int trace_id; /* 8 8 */ int ts_samples_count; /* 16 4 */ /* XXX 4 bytes hole, try to pack */ struct ts_offset_sample * ts_samples; /* 24 8 */ /* size: 32, cachelines: 1, members: 4 */ /* sum members: 21, holes: 2, sum holes: 11 */ /* last cacheline: 32 bytes */ }; After: struct host_trace_info { long long unsigned int trace_id; /* 0 8 */ _Bool sync_enable; /* 8 1 */ /* XXX 3 bytes hole, try to pack */ int ts_samples_count; /* 12 4 */ struct ts_offset_sample * ts_samples; /* 16 8 */ /* size: 24, cachelines: 1, members: 4 */ /* sum members: 21, holes: 1, sum holes: 3 */ /* last cacheline: 24 bytes */ }; Signed-off-by: Steven Rostedt (VMware) <rostedt@xxxxxxxxxxx> --- This is why I'm picky on ordering of fields in data structures. I'm sure there's many more places we can update here. -- Steve lib/trace-cmd/trace-input.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/trace-cmd/trace-input.c b/lib/trace-cmd/trace-input.c index 2f0274d9..a1241f4b 100644 --- a/lib/trace-cmd/trace-input.c +++ b/lib/trace-cmd/trace-input.c @@ -83,8 +83,8 @@ struct ts_offset_sample { }; struct host_trace_info { - bool sync_enable; unsigned long long trace_id; + bool sync_enable; int ts_samples_count; struct ts_offset_sample *ts_samples; }; -- 2.20.1