diff mbox series

trace-cmd: Adjust host_trace_info structure to be better packed

Message ID 20200305124655.0738a585@gandalf.local.home (mailing list archive)
State Accepted
Commit dd94ed5bdc4b1cda90853cfcb2ada814148089b2
Headers show
Series trace-cmd: Adjust host_trace_info structure to be better packed | expand

Commit Message

Steven Rostedt March 5, 2020, 5:46 p.m. UTC
From: "Steven Rostedt (VMware)" <rostedt@goodmis.org>

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@goodmis.org>
---

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 mbox series

Patch

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;
 };