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 <jlayton@kernel.org>
---
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