47
47
)
48
48
49
49
TRACE_EVENT (cxl_aer_uncorrectable_error ,
50
- TP_PROTO (const struct device * dev , u32 status , u32 fe , u32 * hl ),
51
- TP_ARGS (dev , status , fe , hl ),
50
+ TP_PROTO (const struct cxl_memdev * cxlmd , u32 status , u32 fe , u32 * hl ),
51
+ TP_ARGS (cxlmd , status , fe , hl ),
52
52
TP_STRUCT__entry (
53
- __string (dev_name , dev_name (dev ))
53
+ __string (memdev , dev_name (& cxlmd -> dev ))
54
+ __string (host , dev_name (cxlmd -> dev .parent ))
55
+ __field (u64 , serial )
54
56
__field (u32 , status )
55
57
__field (u32 , first_error )
56
58
__array (u32 , header_log , CXL_HEADERLOG_SIZE_U32 )
57
59
),
58
60
TP_fast_assign (
59
- __assign_str (dev_name , dev_name (dev ));
61
+ __assign_str (memdev , dev_name (& cxlmd -> dev ));
62
+ __assign_str (host , dev_name (cxlmd -> dev .parent ));
63
+ __entry -> serial = cxlmd -> cxlds -> serial ;
60
64
__entry -> status = status ;
61
65
__entry -> first_error = fe ;
62
66
/*
@@ -65,8 +69,8 @@ TRACE_EVENT(cxl_aer_uncorrectable_error,
65
69
*/
66
70
memcpy (__entry -> header_log , hl , CXL_HEADERLOG_SIZE );
67
71
),
68
- TP_printk ("%s : status: '%s' first_error: '%s'" ,
69
- __get_str (dev_name ) ,
72
+ TP_printk ("memdev=%s host=%s serial=%lld : status: '%s' first_error: '%s'" ,
73
+ __get_str (memdev ), __get_str ( host ), __entry -> serial ,
70
74
show_uc_errs (__entry -> status ),
71
75
show_uc_errs (__entry -> first_error )
72
76
)
@@ -91,18 +95,23 @@ TRACE_EVENT(cxl_aer_uncorrectable_error,
91
95
)
92
96
93
97
TRACE_EVENT (cxl_aer_correctable_error ,
94
- TP_PROTO (const struct device * dev , u32 status ),
95
- TP_ARGS (dev , status ),
98
+ TP_PROTO (const struct cxl_memdev * cxlmd , u32 status ),
99
+ TP_ARGS (cxlmd , status ),
96
100
TP_STRUCT__entry (
97
- __string (dev_name , dev_name (dev ))
101
+ __string (memdev , dev_name (& cxlmd -> dev ))
102
+ __string (host , dev_name (cxlmd -> dev .parent ))
103
+ __field (u64 , serial )
98
104
__field (u32 , status )
99
105
),
100
106
TP_fast_assign (
101
- __assign_str (dev_name , dev_name (dev ));
107
+ __assign_str (memdev , dev_name (& cxlmd -> dev ));
108
+ __assign_str (host , dev_name (cxlmd -> dev .parent ));
109
+ __entry -> serial = cxlmd -> cxlds -> serial ;
102
110
__entry -> status = status ;
103
111
),
104
- TP_printk ("%s: status: '%s'" ,
105
- __get_str (dev_name ), show_ce_errs (__entry -> status )
112
+ TP_printk ("memdev=%s host=%s serial=%lld: status: '%s'" ,
113
+ __get_str (memdev ), __get_str (host ), __entry -> serial ,
114
+ show_ce_errs (__entry -> status )
106
115
)
107
116
);
108
117
@@ -115,30 +124,35 @@ TRACE_EVENT(cxl_aer_correctable_error,
115
124
116
125
TRACE_EVENT (cxl_overflow ,
117
126
118
- TP_PROTO (const struct device * dev , enum cxl_event_log_type log ,
127
+ TP_PROTO (const struct cxl_memdev * cxlmd , enum cxl_event_log_type log ,
119
128
struct cxl_get_event_payload * payload ),
120
129
121
- TP_ARGS (dev , log , payload ),
130
+ TP_ARGS (cxlmd , log , payload ),
122
131
123
132
TP_STRUCT__entry (
124
- __string (dev_name , dev_name (dev ))
133
+ __string (memdev , dev_name (& cxlmd -> dev ))
134
+ __string (host , dev_name (cxlmd -> dev .parent ))
125
135
__field (int , log )
136
+ __field (u64 , serial )
126
137
__field (u64 , first_ts )
127
138
__field (u64 , last_ts )
128
139
__field (u16 , count )
129
140
),
130
141
131
142
TP_fast_assign (
132
- __assign_str (dev_name , dev_name (dev ));
143
+ __assign_str (memdev , dev_name (& cxlmd -> dev ));
144
+ __assign_str (host , dev_name (cxlmd -> dev .parent ));
145
+ __entry -> serial = cxlmd -> cxlds -> serial ;
133
146
__entry -> log = log ;
134
147
__entry -> count = le16_to_cpu (payload -> overflow_err_count );
135
148
__entry -> first_ts = le64_to_cpu (payload -> first_overflow_timestamp );
136
149
__entry -> last_ts = le64_to_cpu (payload -> last_overflow_timestamp );
137
150
),
138
151
139
- TP_printk ("%s: log=%s : %u records from %llu to %llu" ,
140
- __get_str (dev_name ), cxl_event_log_type_str (__entry -> log ),
141
- __entry -> count , __entry -> first_ts , __entry -> last_ts )
152
+ TP_printk ("memdev=%s host=%s serial=%lld: log=%s : %u records from %llu to %llu" ,
153
+ __get_str (memdev ), __get_str (host ), __entry -> serial ,
154
+ cxl_event_log_type_str (__entry -> log ), __entry -> count ,
155
+ __entry -> first_ts , __entry -> last_ts )
142
156
143
157
);
144
158
@@ -170,19 +184,23 @@ TRACE_EVENT(cxl_overflow,
170
184
* See the generic_event tracepoint as an example.
171
185
*/
172
186
#define CXL_EVT_TP_entry \
173
- __string(dev_name, dev_name(dev)) \
187
+ __string(memdev, dev_name(&cxlmd->dev)) \
188
+ __string(host, dev_name(cxlmd->dev.parent)) \
174
189
__field(int, log) \
175
190
__field_struct(uuid_t, hdr_uuid) \
191
+ __field(u64, serial) \
176
192
__field(u32, hdr_flags) \
177
193
__field(u16, hdr_handle) \
178
194
__field(u16, hdr_related_handle) \
179
195
__field(u64, hdr_timestamp) \
180
196
__field(u8, hdr_length) \
181
197
__field(u8, hdr_maint_op_class)
182
198
183
- #define CXL_EVT_TP_fast_assign (dev , l , hdr ) \
184
- __assign_str(dev_name, dev_name(dev)); \
199
+ #define CXL_EVT_TP_fast_assign (cxlmd , l , hdr ) \
200
+ __assign_str(memdev, dev_name(&(cxlmd)->dev)); \
201
+ __assign_str(host, dev_name((cxlmd)->dev.parent)); \
185
202
__entry->log = (l); \
203
+ __entry->serial = (cxlmd)->cxlds->serial; \
186
204
memcpy(&__entry->hdr_uuid, &(hdr).id, sizeof(uuid_t)); \
187
205
__entry->hdr_length = (hdr).length; \
188
206
__entry->hdr_flags = get_unaligned_le24((hdr).flags); \
@@ -192,29 +210,30 @@ TRACE_EVENT(cxl_overflow,
192
210
__entry->hdr_maint_op_class = (hdr).maint_op_class
193
211
194
212
#define CXL_EVT_TP_printk (fmt , ...) \
195
- TP_printk("%s log=%s : time=%llu uuid=%pUb len=%d flags='%s' " \
196
- "handle=%x related_handle=%x maint_op_class=%u" \
197
- " : " fmt, \
198
- __get_str(dev_name), cxl_event_log_type_str(__entry->log), \
213
+ TP_printk("memdev=%s host=%s serial=%lld log=%s : time=%llu uuid=%pUb " \
214
+ "len=%d flags='%s' handle=%x related_handle=%x " \
215
+ "maint_op_class=%u : " fmt, \
216
+ __get_str(memdev), __get_str(host), __entry->serial, \
217
+ cxl_event_log_type_str(__entry->log), \
199
218
__entry->hdr_timestamp, &__entry->hdr_uuid, __entry->hdr_length,\
200
219
show_hdr_flags(__entry->hdr_flags), __entry->hdr_handle, \
201
220
__entry->hdr_related_handle, __entry->hdr_maint_op_class, \
202
221
##__VA_ARGS__)
203
222
204
223
TRACE_EVENT (cxl_generic_event ,
205
224
206
- TP_PROTO (const struct device * dev , enum cxl_event_log_type log ,
225
+ TP_PROTO (const struct cxl_memdev * cxlmd , enum cxl_event_log_type log ,
207
226
struct cxl_event_record_raw * rec ),
208
227
209
- TP_ARGS (dev , log , rec ),
228
+ TP_ARGS (cxlmd , log , rec ),
210
229
211
230
TP_STRUCT__entry (
212
231
CXL_EVT_TP_entry
213
232
__array (u8 , data , CXL_EVENT_RECORD_DATA_LENGTH )
214
233
),
215
234
216
235
TP_fast_assign (
217
- CXL_EVT_TP_fast_assign (dev , log , rec -> hdr );
236
+ CXL_EVT_TP_fast_assign (cxlmd , log , rec -> hdr );
218
237
memcpy (__entry -> data , & rec -> data , CXL_EVENT_RECORD_DATA_LENGTH );
219
238
),
220
239
@@ -293,10 +312,10 @@ TRACE_EVENT(cxl_generic_event,
293
312
294
313
TRACE_EVENT (cxl_general_media ,
295
314
296
- TP_PROTO (const struct device * dev , enum cxl_event_log_type log ,
315
+ TP_PROTO (const struct cxl_memdev * cxlmd , enum cxl_event_log_type log ,
297
316
struct cxl_event_gen_media * rec ),
298
317
299
- TP_ARGS (dev , log , rec ),
318
+ TP_ARGS (cxlmd , log , rec ),
300
319
301
320
TP_STRUCT__entry (
302
321
CXL_EVT_TP_entry
@@ -315,7 +334,7 @@ TRACE_EVENT(cxl_general_media,
315
334
),
316
335
317
336
TP_fast_assign (
318
- CXL_EVT_TP_fast_assign (dev , log , rec -> hdr );
337
+ CXL_EVT_TP_fast_assign (cxlmd , log , rec -> hdr );
319
338
320
339
/* General Media */
321
340
__entry -> dpa = le64_to_cpu (rec -> phys_addr );
@@ -376,10 +395,10 @@ TRACE_EVENT(cxl_general_media,
376
395
377
396
TRACE_EVENT (cxl_dram ,
378
397
379
- TP_PROTO (const struct device * dev , enum cxl_event_log_type log ,
398
+ TP_PROTO (const struct cxl_memdev * cxlmd , enum cxl_event_log_type log ,
380
399
struct cxl_event_dram * rec ),
381
400
382
- TP_ARGS (dev , log , rec ),
401
+ TP_ARGS (cxlmd , log , rec ),
383
402
384
403
TP_STRUCT__entry (
385
404
CXL_EVT_TP_entry
@@ -401,7 +420,7 @@ TRACE_EVENT(cxl_dram,
401
420
),
402
421
403
422
TP_fast_assign (
404
- CXL_EVT_TP_fast_assign (dev , log , rec -> hdr );
423
+ CXL_EVT_TP_fast_assign (cxlmd , log , rec -> hdr );
405
424
406
425
/* DRAM */
407
426
__entry -> dpa = le64_to_cpu (rec -> phys_addr );
@@ -525,10 +544,10 @@ TRACE_EVENT(cxl_dram,
525
544
526
545
TRACE_EVENT (cxl_memory_module ,
527
546
528
- TP_PROTO (const struct device * dev , enum cxl_event_log_type log ,
547
+ TP_PROTO (const struct cxl_memdev * cxlmd , enum cxl_event_log_type log ,
529
548
struct cxl_event_mem_module * rec ),
530
549
531
- TP_ARGS (dev , log , rec ),
550
+ TP_ARGS (cxlmd , log , rec ),
532
551
533
552
TP_STRUCT__entry (
534
553
CXL_EVT_TP_entry
@@ -548,7 +567,7 @@ TRACE_EVENT(cxl_memory_module,
548
567
),
549
568
550
569
TP_fast_assign (
551
- CXL_EVT_TP_fast_assign (dev , log , rec -> hdr );
570
+ CXL_EVT_TP_fast_assign (cxlmd , log , rec -> hdr );
552
571
553
572
/* Memory Module Event */
554
573
__entry -> event_type = rec -> event_type ;
0 commit comments