]> Git Repo - J-linux.git/blob - include/trace/events/timestamp.h
Merge tag 'vfs-6.13-rc7.fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/vfs/vfs
[J-linux.git] / include / trace / events / timestamp.h
1 /* SPDX-License-Identifier: GPL-2.0 */
2 #undef TRACE_SYSTEM
3 #define TRACE_SYSTEM timestamp
4
5 #if !defined(_TRACE_TIMESTAMP_H) || defined(TRACE_HEADER_MULTI_READ)
6 #define _TRACE_TIMESTAMP_H
7
8 #include <linux/tracepoint.h>
9 #include <linux/fs.h>
10
11 #define CTIME_QUERIED_FLAGS \
12         { I_CTIME_QUERIED, "Q" }
13
14 DECLARE_EVENT_CLASS(ctime,
15         TP_PROTO(struct inode *inode,
16                  struct timespec64 *ctime),
17
18         TP_ARGS(inode, ctime),
19
20         TP_STRUCT__entry(
21                 __field(dev_t,          dev)
22                 __field(ino_t,          ino)
23                 __field(time64_t,       ctime_s)
24                 __field(u32,            ctime_ns)
25                 __field(u32,            gen)
26         ),
27
28         TP_fast_assign(
29                 __entry->dev            = inode->i_sb->s_dev;
30                 __entry->ino            = inode->i_ino;
31                 __entry->gen            = inode->i_generation;
32                 __entry->ctime_s        = ctime->tv_sec;
33                 __entry->ctime_ns       = ctime->tv_nsec;
34         ),
35
36         TP_printk("ino=%d:%d:%ld:%u ctime=%lld.%u",
37                 MAJOR(__entry->dev), MINOR(__entry->dev), __entry->ino, __entry->gen,
38                 __entry->ctime_s, __entry->ctime_ns
39         )
40 );
41
42 DEFINE_EVENT(ctime, inode_set_ctime_to_ts,
43                 TP_PROTO(struct inode *inode,
44                          struct timespec64 *ctime),
45                 TP_ARGS(inode, ctime));
46
47 DEFINE_EVENT(ctime, ctime_xchg_skip,
48                 TP_PROTO(struct inode *inode,
49                          struct timespec64 *ctime),
50                 TP_ARGS(inode, ctime));
51
52 TRACE_EVENT(ctime_ns_xchg,
53         TP_PROTO(struct inode *inode,
54                  u32 old,
55                  u32 new,
56                  u32 cur),
57
58         TP_ARGS(inode, old, new, cur),
59
60         TP_STRUCT__entry(
61                 __field(dev_t,          dev)
62                 __field(ino_t,          ino)
63                 __field(u32,            gen)
64                 __field(u32,            old)
65                 __field(u32,            new)
66                 __field(u32,            cur)
67         ),
68
69         TP_fast_assign(
70                 __entry->dev            = inode->i_sb->s_dev;
71                 __entry->ino            = inode->i_ino;
72                 __entry->gen            = inode->i_generation;
73                 __entry->old            = old;
74                 __entry->new            = new;
75                 __entry->cur            = cur;
76         ),
77
78         TP_printk("ino=%d:%d:%ld:%u old=%u:%s new=%u cur=%u:%s",
79                 MAJOR(__entry->dev), MINOR(__entry->dev), __entry->ino, __entry->gen,
80                 __entry->old & ~I_CTIME_QUERIED,
81                 __print_flags(__entry->old & I_CTIME_QUERIED, "|", CTIME_QUERIED_FLAGS),
82                 __entry->new,
83                 __entry->cur & ~I_CTIME_QUERIED,
84                 __print_flags(__entry->cur & I_CTIME_QUERIED, "|", CTIME_QUERIED_FLAGS)
85         )
86 );
87
88 TRACE_EVENT(fill_mg_cmtime,
89         TP_PROTO(struct inode *inode,
90                  struct timespec64 *ctime,
91                  struct timespec64 *mtime),
92
93         TP_ARGS(inode, ctime, mtime),
94
95         TP_STRUCT__entry(
96                 __field(dev_t,          dev)
97                 __field(ino_t,          ino)
98                 __field(time64_t,       ctime_s)
99                 __field(time64_t,       mtime_s)
100                 __field(u32,            ctime_ns)
101                 __field(u32,            mtime_ns)
102                 __field(u32,            gen)
103         ),
104
105         TP_fast_assign(
106                 __entry->dev            = inode->i_sb->s_dev;
107                 __entry->ino            = inode->i_ino;
108                 __entry->gen            = inode->i_generation;
109                 __entry->ctime_s        = ctime->tv_sec;
110                 __entry->mtime_s        = mtime->tv_sec;
111                 __entry->ctime_ns       = ctime->tv_nsec;
112                 __entry->mtime_ns       = mtime->tv_nsec;
113         ),
114
115         TP_printk("ino=%d:%d:%ld:%u ctime=%lld.%u mtime=%lld.%u",
116                 MAJOR(__entry->dev), MINOR(__entry->dev), __entry->ino, __entry->gen,
117                 __entry->ctime_s, __entry->ctime_ns,
118                 __entry->mtime_s, __entry->mtime_ns
119         )
120 );
121 #endif /* _TRACE_TIMESTAMP_H */
122
123 /* This part must be outside protection */
124 #include <trace/define_trace.h>
This page took 0.034284 seconds and 4 git commands to generate.