Commit | Line | Data |
---|---|---|
4c44abf4 HH |
1 | /* SPDX-License-Identifier: GPL-2.0 */ |
2 | #undef TRACE_SYSTEM | |
3 | #define TRACE_SYSTEM pblk | |
4 | ||
5 | #if !defined(_TRACE_PBLK_H) || defined(TRACE_HEADER_MULTI_READ) | |
6 | #define _TRACE_PBLK_H | |
7 | ||
8 | #include <linux/tracepoint.h> | |
9 | ||
10 | struct ppa_addr; | |
11 | ||
12 | #define show_chunk_flags(state) __print_flags(state, "", \ | |
13 | { NVM_CHK_ST_FREE, "FREE", }, \ | |
14 | { NVM_CHK_ST_CLOSED, "CLOSED", }, \ | |
15 | { NVM_CHK_ST_OPEN, "OPEN", }, \ | |
16 | { NVM_CHK_ST_OFFLINE, "OFFLINE", }) | |
17 | ||
f2937232 HH |
18 | #define show_line_state(state) __print_symbolic(state, \ |
19 | { PBLK_LINESTATE_NEW, "NEW", }, \ | |
20 | { PBLK_LINESTATE_FREE, "FREE", }, \ | |
21 | { PBLK_LINESTATE_OPEN, "OPEN", }, \ | |
22 | { PBLK_LINESTATE_CLOSED, "CLOSED", }, \ | |
23 | { PBLK_LINESTATE_GC, "GC", }, \ | |
24 | { PBLK_LINESTATE_BAD, "BAD", }, \ | |
25 | { PBLK_LINESTATE_CORRUPT, "CORRUPT" }) | |
26 | ||
27 | ||
1b0dd0bf HH |
28 | #define show_pblk_state(state) __print_symbolic(state, \ |
29 | { PBLK_STATE_RUNNING, "RUNNING", }, \ | |
30 | { PBLK_STATE_STOPPING, "STOPPING", }, \ | |
31 | { PBLK_STATE_RECOVERING, "RECOVERING", }, \ | |
32 | { PBLK_STATE_STOPPED, "STOPPED" }) | |
33 | ||
4209c31c HH |
34 | #define show_chunk_erase_state(state) __print_symbolic(state, \ |
35 | { PBLK_CHUNK_RESET_START, "START", }, \ | |
36 | { PBLK_CHUNK_RESET_DONE, "OK", }, \ | |
37 | { PBLK_CHUNK_RESET_FAILED, "FAILED" }) | |
38 | ||
39 | ||
40 | TRACE_EVENT(pblk_chunk_reset, | |
41 | ||
42 | TP_PROTO(const char *name, struct ppa_addr *ppa, int state), | |
43 | ||
44 | TP_ARGS(name, ppa, state), | |
45 | ||
46 | TP_STRUCT__entry( | |
47 | __string(name, name) | |
48 | __field(u64, ppa) | |
49 | __field(int, state); | |
50 | ), | |
51 | ||
52 | TP_fast_assign( | |
53 | __assign_str(name, name); | |
54 | __entry->ppa = ppa->ppa; | |
55 | __entry->state = state; | |
56 | ), | |
57 | ||
58 | TP_printk("dev=%s grp=%llu pu=%llu chk=%llu state=%s", __get_str(name), | |
59 | (u64)(((struct ppa_addr *)(&__entry->ppa))->m.grp), | |
60 | (u64)(((struct ppa_addr *)(&__entry->ppa))->m.pu), | |
61 | (u64)(((struct ppa_addr *)(&__entry->ppa))->m.chk), | |
62 | show_chunk_erase_state((int)__entry->state)) | |
63 | ||
64 | ); | |
1b0dd0bf | 65 | |
4c44abf4 HH |
66 | TRACE_EVENT(pblk_chunk_state, |
67 | ||
68 | TP_PROTO(const char *name, struct ppa_addr *ppa, int state), | |
69 | ||
70 | TP_ARGS(name, ppa, state), | |
71 | ||
72 | TP_STRUCT__entry( | |
73 | __string(name, name) | |
74 | __field(u64, ppa) | |
75 | __field(int, state); | |
76 | ), | |
77 | ||
78 | TP_fast_assign( | |
79 | __assign_str(name, name); | |
80 | __entry->ppa = ppa->ppa; | |
81 | __entry->state = state; | |
82 | ), | |
83 | ||
84 | TP_printk("dev=%s grp=%llu pu=%llu chk=%llu state=%s", __get_str(name), | |
85 | (u64)(((struct ppa_addr *)(&__entry->ppa))->m.grp), | |
86 | (u64)(((struct ppa_addr *)(&__entry->ppa))->m.pu), | |
87 | (u64)(((struct ppa_addr *)(&__entry->ppa))->m.chk), | |
88 | show_chunk_flags((int)__entry->state)) | |
89 | ||
90 | ); | |
91 | ||
f2937232 HH |
92 | TRACE_EVENT(pblk_line_state, |
93 | ||
94 | TP_PROTO(const char *name, int line, int state), | |
95 | ||
96 | TP_ARGS(name, line, state), | |
97 | ||
98 | TP_STRUCT__entry( | |
99 | __string(name, name) | |
100 | __field(int, line) | |
101 | __field(int, state); | |
102 | ), | |
103 | ||
104 | TP_fast_assign( | |
105 | __assign_str(name, name); | |
106 | __entry->line = line; | |
107 | __entry->state = state; | |
108 | ), | |
109 | ||
110 | TP_printk("dev=%s line=%d state=%s", __get_str(name), | |
111 | (int)__entry->line, | |
112 | show_line_state((int)__entry->state)) | |
113 | ||
114 | ); | |
4c44abf4 | 115 | |
1b0dd0bf HH |
116 | TRACE_EVENT(pblk_state, |
117 | ||
118 | TP_PROTO(const char *name, int state), | |
119 | ||
120 | TP_ARGS(name, state), | |
121 | ||
122 | TP_STRUCT__entry( | |
123 | __string(name, name) | |
124 | __field(int, state); | |
125 | ), | |
126 | ||
127 | TP_fast_assign( | |
128 | __assign_str(name, name); | |
129 | __entry->state = state; | |
130 | ), | |
131 | ||
132 | TP_printk("dev=%s state=%s", __get_str(name), | |
133 | show_pblk_state((int)__entry->state)) | |
134 | ||
135 | ); | |
136 | ||
4c44abf4 HH |
137 | #endif /* !defined(_TRACE_PBLK_H) || defined(TRACE_HEADER_MULTI_READ) */ |
138 | ||
139 | /* This part must be outside protection */ | |
140 | ||
141 | #undef TRACE_INCLUDE_PATH | |
142 | #define TRACE_INCLUDE_PATH ../../../drivers/lightnvm | |
143 | #undef TRACE_INCLUDE_FILE | |
144 | #define TRACE_INCLUDE_FILE pblk-trace | |
145 | #include <trace/define_trace.h> |