The recent conversion of ino_t/unsigned long inode number fields to u64 in VFS-layer trace events can leave alignment holes on 32-bit platforms (particularly ARM, where u64 has 8-byte alignment). Reorder the TP_STRUCT__entry fields so that 64-bit integer fields (u64, loff_t, time64_t) come first, followed by pointers and unsigned longs, then integer-sized and smaller fields.
This eliminates padding holes on 32-bit without worsening packing on 64-bit. Only the field declaration order in TP_STRUCT__entry is changed; TP_fast_assign and TP_printk reference fields by name and are unaffected. Files affected: cachefiles.h, filelock.h, filemap.h, hugetlbfs.h, readahead.h, timestamp.h, writeback.h. Signed-off-by: Jeff Layton <[email protected]> --- include/trace/events/cachefiles.h | 10 +++++----- include/trace/events/filelock.h | 22 +++++++++++----------- include/trace/events/filemap.h | 4 ++-- include/trace/events/hugetlbfs.h | 18 +++++++++--------- include/trace/events/readahead.h | 6 +++--- include/trace/events/timestamp.h | 6 +++--- include/trace/events/writeback.h | 32 ++++++++++++++++---------------- 7 files changed, 49 insertions(+), 49 deletions(-) diff --git a/include/trace/events/cachefiles.h b/include/trace/events/cachefiles.h index f967027711ee823f224abc1b8ab03f63da06ae6f..6e3b1424eea4dc9e414dd9d1439339132d516339 100644 --- a/include/trace/events/cachefiles.h +++ b/include/trace/events/cachefiles.h @@ -249,10 +249,10 @@ TRACE_EVENT(cachefiles_lookup, TP_ARGS(obj, dir, de), TP_STRUCT__entry( - __field(unsigned int, obj) - __field(short, error) __field(u64, dino) __field(u64, ino) + __field(unsigned int, obj) + __field(short, error) ), TP_fast_assign( @@ -578,8 +578,8 @@ TRACE_EVENT(cachefiles_mark_active, /* Note that obj may be NULL */ TP_STRUCT__entry( - __field(unsigned int, obj) __field(u64, inode) + __field(unsigned int, obj) ), TP_fast_assign( @@ -599,8 +599,8 @@ TRACE_EVENT(cachefiles_mark_failed, /* Note that obj may be NULL */ TP_STRUCT__entry( - __field(unsigned int, obj) __field(u64, inode) + __field(unsigned int, obj) ), TP_fast_assign( @@ -620,8 +620,8 @@ TRACE_EVENT(cachefiles_mark_inactive, /* Note that obj may be NULL */ TP_STRUCT__entry( - __field(unsigned int, obj) __field(u64, inode) + __field(unsigned int, obj) ), TP_fast_assign( diff --git a/include/trace/events/filelock.h b/include/trace/events/filelock.h index 41bc752616b25d6cd7955203e2c604029d0b440c..1167748862449ef6ff04c40b568ea8c3bbb08207 100644 --- a/include/trace/events/filelock.h +++ b/include/trace/events/filelock.h @@ -43,9 +43,9 @@ TRACE_EVENT(locks_get_lock_context, TP_STRUCT__entry( __field(u64, i_ino) + __field(struct file_lock_context *, ctx) __field(dev_t, s_dev) __field(unsigned char, type) - __field(struct file_lock_context *, ctx) ), TP_fast_assign( @@ -66,16 +66,16 @@ DECLARE_EVENT_CLASS(filelock_lock, TP_ARGS(inode, fl, ret), TP_STRUCT__entry( - __field(struct file_lock *, fl) __field(u64, i_ino) - __field(dev_t, s_dev) + __field(loff_t, fl_start) + __field(loff_t, fl_end) + __field(struct file_lock *, fl) __field(struct file_lock_core *, blocker) __field(fl_owner_t, owner) + __field(dev_t, s_dev) __field(unsigned int, pid) __field(unsigned int, flags) __field(unsigned char, type) - __field(loff_t, fl_start) - __field(loff_t, fl_end) __field(int, ret) ), @@ -123,15 +123,15 @@ DECLARE_EVENT_CLASS(filelock_lease, TP_ARGS(inode, fl), TP_STRUCT__entry( - __field(struct file_lease *, fl) __field(u64, i_ino) - __field(dev_t, s_dev) + __field(struct file_lease *, fl) __field(struct file_lock_core *, blocker) __field(fl_owner_t, owner) - __field(unsigned int, flags) - __field(unsigned char, type) __field(unsigned long, break_time) __field(unsigned long, downgrade_time) + __field(dev_t, s_dev) + __field(unsigned int, flags) + __field(unsigned char, type) ), TP_fast_assign( @@ -176,11 +176,11 @@ TRACE_EVENT(generic_add_lease, TP_STRUCT__entry( __field(u64, i_ino) + __field(fl_owner_t, owner) + __field(dev_t, s_dev) __field(int, wcount) __field(int, rcount) __field(int, icount) - __field(dev_t, s_dev) - __field(fl_owner_t, owner) __field(unsigned int, flags) __field(unsigned char, type) ), diff --git a/include/trace/events/filemap.h b/include/trace/events/filemap.h index 153491e57cce6df73e30ddee60a52ed7d8923c24..4dcf8e9e2e0d8bde7c9df9856c059d2cdebff59f 100644 --- a/include/trace/events/filemap.h +++ b/include/trace/events/filemap.h @@ -20,8 +20,8 @@ DECLARE_EVENT_CLASS(mm_filemap_op_page_cache, TP_ARGS(folio), TP_STRUCT__entry( - __field(unsigned long, pfn) __field(u64, i_ino) + __field(unsigned long, pfn) __field(unsigned long, index) __field(dev_t, s_dev) __field(unsigned char, order) @@ -171,8 +171,8 @@ TRACE_EVENT(file_check_and_advance_wb_err, TP_ARGS(file, old), TP_STRUCT__entry( - __field(struct file *, file) __field(u64, i_ino) + __field(struct file *, file) __field(dev_t, s_dev) __field(errseq_t, old) __field(errseq_t, new) diff --git a/include/trace/events/hugetlbfs.h b/include/trace/events/hugetlbfs.h index d4fefa571b829f92729c7e175df9ad5ed701131a..8ba72c1d4f4d8ba616906be5b5c4b487972fec00 100644 --- a/include/trace/events/hugetlbfs.h +++ b/include/trace/events/hugetlbfs.h @@ -14,9 +14,9 @@ TRACE_EVENT(hugetlbfs_alloc_inode, TP_ARGS(inode, dir, mode), TP_STRUCT__entry( - __field(dev_t, dev) __field(u64, ino) __field(u64, dir) + __field(dev_t, dev) __field(__u16, mode) ), @@ -40,13 +40,13 @@ DECLARE_EVENT_CLASS(hugetlbfs__inode, TP_ARGS(inode), TP_STRUCT__entry( - __field(dev_t, dev) __field(u64, ino) - __field(__u16, mode) __field(loff_t, size) + __field(blkcnt_t, blocks) + __field(dev_t, dev) __field(unsigned int, nlink) __field(unsigned int, seals) - __field(blkcnt_t, blocks) + __field(__u16, mode) ), TP_fast_assign( @@ -87,14 +87,14 @@ TRACE_EVENT(hugetlbfs_setattr, TP_ARGS(inode, dentry, attr), TP_STRUCT__entry( - __field(dev_t, dev) __field(u64, ino) + __field(loff_t, old_size) + __field(loff_t, ia_size) + __field(dev_t, dev) __field(unsigned int, d_len) __string(d_name, dentry->d_name.name) __field(unsigned int, ia_valid) __field(unsigned int, ia_mode) - __field(loff_t, old_size) - __field(loff_t, ia_size) ), TP_fast_assign( @@ -122,12 +122,12 @@ TRACE_EVENT(hugetlbfs_fallocate, TP_ARGS(inode, mode, offset, len, ret), TP_STRUCT__entry( - __field(dev_t, dev) __field(u64, ino) - __field(int, mode) __field(loff_t, offset) __field(loff_t, len) __field(loff_t, size) + __field(dev_t, dev) + __field(int, mode) __field(int, ret) ), diff --git a/include/trace/events/readahead.h b/include/trace/events/readahead.h index 928b2c67654735cc004d27beeee2066196e60a70..087f171e2b02d30f09179d5ed6c27a7e0224370b 100644 --- a/include/trace/events/readahead.h +++ b/include/trace/events/readahead.h @@ -81,15 +81,15 @@ DECLARE_EVENT_CLASS(page_cache_ra_op, TP_STRUCT__entry( __field(u64, i_ino) - __field(dev_t, s_dev) + __field(loff_t, prev_pos) __field(pgoff_t, index) + __field(unsigned long, req_count) + __field(dev_t, s_dev) __field(unsigned int, order) __field(unsigned int, size) __field(unsigned int, async_size) __field(unsigned int, ra_pages) __field(unsigned int, mmap_miss) - __field(loff_t, prev_pos) - __field(unsigned long, req_count) ), TP_fast_assign( diff --git a/include/trace/events/timestamp.h b/include/trace/events/timestamp.h index 315ea8d57796617661768da24591d53095ac7649..d6503612dddf9c6a2f785fad549fa04adddb06fe 100644 --- a/include/trace/events/timestamp.h +++ b/include/trace/events/timestamp.h @@ -18,9 +18,9 @@ DECLARE_EVENT_CLASS(ctime, TP_ARGS(inode, ctime), TP_STRUCT__entry( - __field(dev_t, dev) __field(u64, ino) __field(time64_t, ctime_s) + __field(dev_t, dev) __field(u32, ctime_ns) __field(u32, gen) ), @@ -58,8 +58,8 @@ TRACE_EVENT(ctime_ns_xchg, TP_ARGS(inode, old, new, cur), TP_STRUCT__entry( - __field(dev_t, dev) __field(u64, ino) + __field(dev_t, dev) __field(u32, gen) __field(u32, old) __field(u32, new) @@ -93,10 +93,10 @@ TRACE_EVENT(fill_mg_cmtime, TP_ARGS(inode, ctime, mtime), TP_STRUCT__entry( - __field(dev_t, dev) __field(u64, ino) __field(time64_t, ctime_s) __field(time64_t, mtime_s) + __field(dev_t, dev) __field(u32, ctime_ns) __field(u32, mtime_ns) __field(u32, gen) diff --git a/include/trace/events/writeback.h b/include/trace/events/writeback.h index ad269142f3f9a288d87e5252f08e8a17fd06e8d5..e5cd2b80fd29dba9177b8ea7c37d63e50e9f60e2 100644 --- a/include/trace/events/writeback.h +++ b/include/trace/events/writeback.h @@ -280,9 +280,9 @@ TRACE_EVENT(track_foreign_dirty, __array(char, name, 32) __field(u64, bdi_id) __field(u64, ino) - __field(unsigned int, memcg_id) __field(u64, cgroup_ino) __field(u64, page_cgroup_ino) + __field(unsigned int, memcg_id) ), TP_fast_assign( @@ -346,8 +346,8 @@ DECLARE_EVENT_CLASS(writeback_write_inode_template, TP_STRUCT__entry ( __array(char, name, 32) __field(u64, ino) - __field(int, sync_mode) __field(u64, cgroup_ino) + __field(int, sync_mode) ), TP_fast_assign( @@ -385,6 +385,7 @@ DECLARE_EVENT_CLASS(writeback_work_class, TP_ARGS(wb, work), TP_STRUCT__entry( __array(char, name, 32) + __field(u64, cgroup_ino) __field(long, nr_pages) __field(dev_t, sb_dev) __field(int, sync_mode) @@ -392,7 +393,6 @@ DECLARE_EVENT_CLASS(writeback_work_class, __field(int, range_cyclic) __field(int, for_background) __field(int, reason) - __field(u64, cgroup_ino) ), TP_fast_assign( strscpy_pad(__entry->name, bdi_dev_name(wb->bdi), 32); @@ -482,15 +482,15 @@ DECLARE_EVENT_CLASS(wbc_class, TP_ARGS(wbc, bdi), TP_STRUCT__entry( __array(char, name, 32) + __field(u64, cgroup_ino) __field(long, nr_to_write) __field(long, pages_skipped) + __field(long, range_start) + __field(long, range_end) __field(int, sync_mode) __field(int, for_kupdate) __field(int, for_background) __field(int, range_cyclic) - __field(long, range_start) - __field(long, range_end) - __field(u64, cgroup_ino) ), TP_fast_assign( @@ -535,11 +535,11 @@ TRACE_EVENT(writeback_queue_io, TP_ARGS(wb, work, dirtied_before, moved), TP_STRUCT__entry( __array(char, name, 32) + __field(u64, cgroup_ino) __field(unsigned long, older) __field(long, age) __field(int, moved) __field(int, reason) - __field(u64, cgroup_ino) ), TP_fast_assign( strscpy_pad(__entry->name, bdi_dev_name(wb->bdi), 32); @@ -614,13 +614,13 @@ TRACE_EVENT(bdi_dirty_ratelimit, TP_STRUCT__entry( __array(char, bdi, 32) + __field(u64, cgroup_ino) __field(unsigned long, write_bw) __field(unsigned long, avg_write_bw) __field(unsigned long, dirty_rate) __field(unsigned long, dirty_ratelimit) __field(unsigned long, task_ratelimit) __field(unsigned long, balanced_dirty_ratelimit) - __field(u64, cgroup_ino) ), TP_fast_assign( @@ -667,6 +667,7 @@ TRACE_EVENT(balance_dirty_pages, TP_STRUCT__entry( __array( char, bdi, 32) + __field(u64, cgroup_ino) __field(unsigned long, limit) __field(unsigned long, setpoint) __field(unsigned long, dirty) @@ -674,13 +675,12 @@ TRACE_EVENT(balance_dirty_pages, __field(unsigned long, wb_dirty) __field(unsigned long, dirty_ratelimit) __field(unsigned long, task_ratelimit) - __field(unsigned int, dirtied) - __field(unsigned int, dirtied_pause) __field(unsigned long, paused) __field( long, pause) __field(unsigned long, period) __field( long, think) - __field(u64, cgroup_ino) + __field(unsigned int, dirtied) + __field(unsigned int, dirtied_pause) ), TP_fast_assign( @@ -738,9 +738,9 @@ TRACE_EVENT(writeback_sb_inodes_requeue, TP_STRUCT__entry( __array(char, name, 32) __field(u64, ino) + __field(u64, cgroup_ino) __field(unsigned long, state) __field(unsigned long, dirtied_when) - __field(u64, cgroup_ino) ), TP_fast_assign( @@ -774,12 +774,12 @@ DECLARE_EVENT_CLASS(writeback_single_inode_template, TP_STRUCT__entry( __array(char, name, 32) __field(u64, ino) + __field(u64, cgroup_ino) __field(unsigned long, state) __field(unsigned long, dirtied_when) __field(unsigned long, writeback_index) - __field(long, nr_to_write) __field(unsigned long, wrote) - __field(u64, cgroup_ino) + __field(long, nr_to_write) ), TP_fast_assign( @@ -828,11 +828,11 @@ DECLARE_EVENT_CLASS(writeback_inode_template, TP_ARGS(inode), TP_STRUCT__entry( - __field( dev_t, dev ) __field( u64, ino ) __field(unsigned long, state ) - __field( __u16, mode ) __field(unsigned long, dirtied_when ) + __field( dev_t, dev ) + __field( __u16, mode ) ), TP_fast_assign( -- 2.53.0
