Merge tag 'mm-stable-2022-08-03' of git://git.kernel.org/pub/scm/linux/kernel/git...
[platform/kernel/linux-starfive.git] / fs / zonefs / trace.h
1 /* SPDX-License-Identifier: GPL-2.0 */
2 /*
3  * zonefs filesystem driver tracepoints.
4  *
5  * Copyright (C) 2021 Western Digital Corporation or its affiliates.
6  */
7
8 #undef TRACE_SYSTEM
9 #define TRACE_SYSTEM zonefs
10
11 #if !defined(_TRACE_ZONEFS_H) || defined(TRACE_HEADER_MULTI_READ)
12 #define _TRACE_ZONEFS_H
13
14 #include <linux/tracepoint.h>
15 #include <linux/trace_seq.h>
16 #include <linux/blkdev.h>
17
18 #include "zonefs.h"
19
20 #define show_dev(dev) MAJOR(dev), MINOR(dev)
21
22 TRACE_EVENT(zonefs_zone_mgmt,
23             TP_PROTO(struct inode *inode, enum req_op op),
24             TP_ARGS(inode, op),
25             TP_STRUCT__entry(
26                              __field(dev_t, dev)
27                              __field(ino_t, ino)
28                              __field(enum req_op, op)
29                              __field(sector_t, sector)
30                              __field(sector_t, nr_sectors)
31             ),
32             TP_fast_assign(
33                            __entry->dev = inode->i_sb->s_dev;
34                            __entry->ino = inode->i_ino;
35                            __entry->op = op;
36                            __entry->sector = ZONEFS_I(inode)->i_zsector;
37                            __entry->nr_sectors =
38                                    ZONEFS_I(inode)->i_zone_size >> SECTOR_SHIFT;
39             ),
40             TP_printk("bdev=(%d,%d), ino=%lu op=%s, sector=%llu, nr_sectors=%llu",
41                       show_dev(__entry->dev), (unsigned long)__entry->ino,
42                       blk_op_str(__entry->op), __entry->sector,
43                       __entry->nr_sectors
44             )
45 );
46
47 TRACE_EVENT(zonefs_file_dio_append,
48             TP_PROTO(struct inode *inode, ssize_t size, ssize_t ret),
49             TP_ARGS(inode, size, ret),
50             TP_STRUCT__entry(
51                              __field(dev_t, dev)
52                              __field(ino_t, ino)
53                              __field(sector_t, sector)
54                              __field(ssize_t, size)
55                              __field(loff_t, wpoffset)
56                              __field(ssize_t, ret)
57             ),
58             TP_fast_assign(
59                            __entry->dev = inode->i_sb->s_dev;
60                            __entry->ino = inode->i_ino;
61                            __entry->sector = ZONEFS_I(inode)->i_zsector;
62                            __entry->size = size;
63                            __entry->wpoffset = ZONEFS_I(inode)->i_wpoffset;
64                            __entry->ret = ret;
65             ),
66             TP_printk("bdev=(%d, %d), ino=%lu, sector=%llu, size=%zu, wpoffset=%llu, ret=%zu",
67                       show_dev(__entry->dev), (unsigned long)__entry->ino,
68                       __entry->sector, __entry->size, __entry->wpoffset,
69                       __entry->ret
70             )
71 );
72
73 TRACE_EVENT(zonefs_iomap_begin,
74             TP_PROTO(struct inode *inode, struct iomap *iomap),
75             TP_ARGS(inode, iomap),
76             TP_STRUCT__entry(
77                              __field(dev_t, dev)
78                              __field(ino_t, ino)
79                              __field(u64, addr)
80                              __field(loff_t, offset)
81                              __field(u64, length)
82             ),
83             TP_fast_assign(
84                            __entry->dev = inode->i_sb->s_dev;
85                            __entry->ino = inode->i_ino;
86                            __entry->addr = iomap->addr;
87                            __entry->offset = iomap->offset;
88                            __entry->length = iomap->length;
89             ),
90             TP_printk("bdev=(%d,%d), ino=%lu, addr=%llu, offset=%llu, length=%llu",
91                       show_dev(__entry->dev), (unsigned long)__entry->ino,
92                       __entry->addr, __entry->offset, __entry->length
93             )
94 );
95
96 #endif /* _TRACE_ZONEFS_H */
97
98 #undef TRACE_INCLUDE_PATH
99 #define TRACE_INCLUDE_PATH .
100 #undef TRACE_INCLUDE_FILE
101 #define TRACE_INCLUDE_FILE trace
102
103 /* This part must be outside protection */
104 #include <trace/define_trace.h>