9
9
#include <linux/blkdev.h>
10
10
#include <linux/buffer_head.h>
11
11
#include <linux/tracepoint.h>
12
+ #include <uapi/linux/ioprio.h>
12
13
13
14
#define RWBS_LEN 8
14
15
16
+ #define IOPRIO_CLASS_STRINGS \
17
+ { IOPRIO_CLASS_NONE, "none" }, \
18
+ { IOPRIO_CLASS_RT, "rt" }, \
19
+ { IOPRIO_CLASS_BE, "be" }, \
20
+ { IOPRIO_CLASS_IDLE, "idle" }, \
21
+ { IOPRIO_CLASS_INVALID, "invalid"}
22
+
15
23
#ifdef CONFIG_BUFFER_HEAD
16
24
DECLARE_EVENT_CLASS (block_buffer ,
17
25
@@ -82,6 +90,7 @@ TRACE_EVENT(block_rq_requeue,
82
90
__field ( dev_t , dev )
83
91
__field ( sector_t , sector )
84
92
__field ( unsigned int , nr_sector )
93
+ __field ( unsigned short , ioprio )
85
94
__array ( char , rwbs , RWBS_LEN )
86
95
__dynamic_array ( char , cmd , 1 )
87
96
),
@@ -90,16 +99,20 @@ TRACE_EVENT(block_rq_requeue,
90
99
__entry -> dev = rq -> q -> disk ? disk_devt (rq -> q -> disk ) : 0 ;
91
100
__entry -> sector = blk_rq_trace_sector (rq );
92
101
__entry -> nr_sector = blk_rq_trace_nr_sectors (rq );
102
+ __entry -> ioprio = rq -> ioprio ;
93
103
94
104
blk_fill_rwbs (__entry -> rwbs , rq -> cmd_flags );
95
105
__get_str (cmd )[0 ] = '\0' ;
96
106
),
97
107
98
- TP_printk ("%d,%d %s (%s) %llu + %u [%d]" ,
108
+ TP_printk ("%d,%d %s (%s) %llu + %u %s,%u,%u [%d]" ,
99
109
MAJOR (__entry -> dev ), MINOR (__entry -> dev ),
100
110
__entry -> rwbs , __get_str (cmd ),
101
- (unsigned long long )__entry -> sector ,
102
- __entry -> nr_sector , 0 )
111
+ (unsigned long long )__entry -> sector , __entry -> nr_sector ,
112
+ __print_symbolic (IOPRIO_PRIO_CLASS (__entry -> ioprio ),
113
+ IOPRIO_CLASS_STRINGS ),
114
+ IOPRIO_PRIO_HINT (__entry -> ioprio ),
115
+ IOPRIO_PRIO_LEVEL (__entry -> ioprio ), 0 )
103
116
);
104
117
105
118
DECLARE_EVENT_CLASS (block_rq_completion ,
@@ -113,6 +126,7 @@ DECLARE_EVENT_CLASS(block_rq_completion,
113
126
__field ( sector_t , sector )
114
127
__field ( unsigned int , nr_sector )
115
128
__field ( int , error )
129
+ __field ( unsigned short , ioprio )
116
130
__array ( char , rwbs , RWBS_LEN )
117
131
__dynamic_array ( char , cmd , 1 )
118
132
),
@@ -122,16 +136,20 @@ DECLARE_EVENT_CLASS(block_rq_completion,
122
136
__entry -> sector = blk_rq_pos (rq );
123
137
__entry -> nr_sector = nr_bytes >> 9 ;
124
138
__entry -> error = blk_status_to_errno (error );
139
+ __entry -> ioprio = rq -> ioprio ;
125
140
126
141
blk_fill_rwbs (__entry -> rwbs , rq -> cmd_flags );
127
142
__get_str (cmd )[0 ] = '\0' ;
128
143
),
129
144
130
- TP_printk ("%d,%d %s (%s) %llu + %u [%d]" ,
145
+ TP_printk ("%d,%d %s (%s) %llu + %u %s,%u,%u [%d]" ,
131
146
MAJOR (__entry -> dev ), MINOR (__entry -> dev ),
132
147
__entry -> rwbs , __get_str (cmd ),
133
- (unsigned long long )__entry -> sector ,
134
- __entry -> nr_sector , __entry -> error )
148
+ (unsigned long long )__entry -> sector , __entry -> nr_sector ,
149
+ __print_symbolic (IOPRIO_PRIO_CLASS (__entry -> ioprio ),
150
+ IOPRIO_CLASS_STRINGS ),
151
+ IOPRIO_PRIO_HINT (__entry -> ioprio ),
152
+ IOPRIO_PRIO_LEVEL (__entry -> ioprio ), __entry -> error )
135
153
);
136
154
137
155
/**
@@ -180,6 +198,7 @@ DECLARE_EVENT_CLASS(block_rq,
180
198
__field ( sector_t , sector )
181
199
__field ( unsigned int , nr_sector )
182
200
__field ( unsigned int , bytes )
201
+ __field ( unsigned short , ioprio )
183
202
__array ( char , rwbs , RWBS_LEN )
184
203
__array ( char , comm , TASK_COMM_LEN )
185
204
__dynamic_array ( char , cmd , 1 )
@@ -190,17 +209,21 @@ DECLARE_EVENT_CLASS(block_rq,
190
209
__entry -> sector = blk_rq_trace_sector (rq );
191
210
__entry -> nr_sector = blk_rq_trace_nr_sectors (rq );
192
211
__entry -> bytes = blk_rq_bytes (rq );
212
+ __entry -> ioprio = rq -> ioprio ;
193
213
194
214
blk_fill_rwbs (__entry -> rwbs , rq -> cmd_flags );
195
215
__get_str (cmd )[0 ] = '\0' ;
196
216
memcpy (__entry -> comm , current -> comm , TASK_COMM_LEN );
197
217
),
198
218
199
- TP_printk ("%d,%d %s %u (%s) %llu + %u [%s]" ,
219
+ TP_printk ("%d,%d %s %u (%s) %llu + %u %s,%u,%u [%s]" ,
200
220
MAJOR (__entry -> dev ), MINOR (__entry -> dev ),
201
221
__entry -> rwbs , __entry -> bytes , __get_str (cmd ),
202
- (unsigned long long )__entry -> sector ,
203
- __entry -> nr_sector , __entry -> comm )
222
+ (unsigned long long )__entry -> sector , __entry -> nr_sector ,
223
+ __print_symbolic (IOPRIO_PRIO_CLASS (__entry -> ioprio ),
224
+ IOPRIO_CLASS_STRINGS ),
225
+ IOPRIO_PRIO_HINT (__entry -> ioprio ),
226
+ IOPRIO_PRIO_LEVEL (__entry -> ioprio ), __entry -> comm )
204
227
);
205
228
206
229
/**
0 commit comments