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


Reply via email to