trace.h (71919308943d2574717517e3698e655ef0fc6f1c) | trace.h (2c92ca849fcc6ee7d0c358e9959abc9f58661aea) |
---|---|
1// SPDX-License-Identifier: GPL-2.0 2/* Copyright(c) 2022 Intel Corporation. All rights reserved. */ 3#undef TRACE_SYSTEM 4#define TRACE_SYSTEM cxl 5 6#if !defined(_CXL_EVENTS_H) || defined(TRACE_HEADER_MULTI_READ) 7#define _CXL_EVENTS_H 8 --- 46 unchanged lines hidden (view full) --- 55 __string(memdev, dev_name(&cxlmd->dev)) 56 __string(host, dev_name(cxlmd->dev.parent)) 57 __field(u64, serial) 58 __field(u32, status) 59 __field(u32, first_error) 60 __array(u32, header_log, CXL_HEADERLOG_SIZE_U32) 61 ), 62 TP_fast_assign( | 1// SPDX-License-Identifier: GPL-2.0 2/* Copyright(c) 2022 Intel Corporation. All rights reserved. */ 3#undef TRACE_SYSTEM 4#define TRACE_SYSTEM cxl 5 6#if !defined(_CXL_EVENTS_H) || defined(TRACE_HEADER_MULTI_READ) 7#define _CXL_EVENTS_H 8 --- 46 unchanged lines hidden (view full) --- 55 __string(memdev, dev_name(&cxlmd->dev)) 56 __string(host, dev_name(cxlmd->dev.parent)) 57 __field(u64, serial) 58 __field(u32, status) 59 __field(u32, first_error) 60 __array(u32, header_log, CXL_HEADERLOG_SIZE_U32) 61 ), 62 TP_fast_assign( |
63 __assign_str(memdev, dev_name(&cxlmd->dev)); 64 __assign_str(host, dev_name(cxlmd->dev.parent)); | 63 __assign_str(memdev); 64 __assign_str(host); |
65 __entry->serial = cxlmd->cxlds->serial; 66 __entry->status = status; 67 __entry->first_error = fe; 68 /* 69 * Embed the 512B headerlog data for user app retrieval and 70 * parsing, but no need to print this in the trace buffer. 71 */ 72 memcpy(__entry->header_log, hl, CXL_HEADERLOG_SIZE); --- 28 unchanged lines hidden (view full) --- 101 TP_ARGS(cxlmd, status), 102 TP_STRUCT__entry( 103 __string(memdev, dev_name(&cxlmd->dev)) 104 __string(host, dev_name(cxlmd->dev.parent)) 105 __field(u64, serial) 106 __field(u32, status) 107 ), 108 TP_fast_assign( | 65 __entry->serial = cxlmd->cxlds->serial; 66 __entry->status = status; 67 __entry->first_error = fe; 68 /* 69 * Embed the 512B headerlog data for user app retrieval and 70 * parsing, but no need to print this in the trace buffer. 71 */ 72 memcpy(__entry->header_log, hl, CXL_HEADERLOG_SIZE); --- 28 unchanged lines hidden (view full) --- 101 TP_ARGS(cxlmd, status), 102 TP_STRUCT__entry( 103 __string(memdev, dev_name(&cxlmd->dev)) 104 __string(host, dev_name(cxlmd->dev.parent)) 105 __field(u64, serial) 106 __field(u32, status) 107 ), 108 TP_fast_assign( |
109 __assign_str(memdev, dev_name(&cxlmd->dev)); 110 __assign_str(host, dev_name(cxlmd->dev.parent)); | 109 __assign_str(memdev); 110 __assign_str(host); |
111 __entry->serial = cxlmd->cxlds->serial; 112 __entry->status = status; 113 ), 114 TP_printk("memdev=%s host=%s serial=%lld: status: '%s'", 115 __get_str(memdev), __get_str(host), __entry->serial, 116 show_ce_errs(__entry->status) 117 ) 118); --- 18 unchanged lines hidden (view full) --- 137 __field(int, log) 138 __field(u64, serial) 139 __field(u64, first_ts) 140 __field(u64, last_ts) 141 __field(u16, count) 142 ), 143 144 TP_fast_assign( | 111 __entry->serial = cxlmd->cxlds->serial; 112 __entry->status = status; 113 ), 114 TP_printk("memdev=%s host=%s serial=%lld: status: '%s'", 115 __get_str(memdev), __get_str(host), __entry->serial, 116 show_ce_errs(__entry->status) 117 ) 118); --- 18 unchanged lines hidden (view full) --- 137 __field(int, log) 138 __field(u64, serial) 139 __field(u64, first_ts) 140 __field(u64, last_ts) 141 __field(u16, count) 142 ), 143 144 TP_fast_assign( |
145 __assign_str(memdev, dev_name(&cxlmd->dev)); 146 __assign_str(host, dev_name(cxlmd->dev.parent)); | 145 __assign_str(memdev); 146 __assign_str(host); |
147 __entry->serial = cxlmd->cxlds->serial; 148 __entry->log = log; 149 __entry->count = le16_to_cpu(payload->overflow_err_count); 150 __entry->first_ts = le64_to_cpu(payload->first_overflow_timestamp); 151 __entry->last_ts = le64_to_cpu(payload->last_overflow_timestamp); 152 ), 153 154 TP_printk("memdev=%s host=%s serial=%lld: log=%s : %u records from %llu to %llu", --- 40 unchanged lines hidden (view full) --- 195 __field(u32, hdr_flags) \ 196 __field(u16, hdr_handle) \ 197 __field(u16, hdr_related_handle) \ 198 __field(u64, hdr_timestamp) \ 199 __field(u8, hdr_length) \ 200 __field(u8, hdr_maint_op_class) 201 202#define CXL_EVT_TP_fast_assign(cxlmd, l, hdr) \ | 147 __entry->serial = cxlmd->cxlds->serial; 148 __entry->log = log; 149 __entry->count = le16_to_cpu(payload->overflow_err_count); 150 __entry->first_ts = le64_to_cpu(payload->first_overflow_timestamp); 151 __entry->last_ts = le64_to_cpu(payload->last_overflow_timestamp); 152 ), 153 154 TP_printk("memdev=%s host=%s serial=%lld: log=%s : %u records from %llu to %llu", --- 40 unchanged lines hidden (view full) --- 195 __field(u32, hdr_flags) \ 196 __field(u16, hdr_handle) \ 197 __field(u16, hdr_related_handle) \ 198 __field(u64, hdr_timestamp) \ 199 __field(u8, hdr_length) \ 200 __field(u8, hdr_maint_op_class) 201 202#define CXL_EVT_TP_fast_assign(cxlmd, l, hdr) \ |
203 __assign_str(memdev, dev_name(&(cxlmd)->dev)); \ 204 __assign_str(host, dev_name((cxlmd)->dev.parent)); \ | 203 __assign_str(memdev); \ 204 __assign_str(host); \ |
205 __entry->log = (l); \ 206 __entry->serial = (cxlmd)->cxlds->serial; \ 207 __entry->hdr_length = (hdr).length; \ 208 __entry->hdr_flags = get_unaligned_le24((hdr).flags); \ 209 __entry->hdr_handle = le16_to_cpu((hdr).handle); \ 210 __entry->hdr_related_handle = le16_to_cpu((hdr).related_handle); \ 211 __entry->hdr_timestamp = le64_to_cpu((hdr).timestamp); \ 212 __entry->hdr_maint_op_class = (hdr).maint_op_class --- 35 unchanged lines hidden (view full) --- 248 * Physical Address field masks 249 * 250 * General Media Event Record 251 * CXL rev 3.0 Section 8.2.9.2.1.1; Table 8-43 252 * 253 * DRAM Event Record 254 * CXL rev 3.0 section 8.2.9.2.1.2; Table 8-44 255 */ | 205 __entry->log = (l); \ 206 __entry->serial = (cxlmd)->cxlds->serial; \ 207 __entry->hdr_length = (hdr).length; \ 208 __entry->hdr_flags = get_unaligned_le24((hdr).flags); \ 209 __entry->hdr_handle = le16_to_cpu((hdr).handle); \ 210 __entry->hdr_related_handle = le16_to_cpu((hdr).related_handle); \ 211 __entry->hdr_timestamp = le64_to_cpu((hdr).timestamp); \ 212 __entry->hdr_maint_op_class = (hdr).maint_op_class --- 35 unchanged lines hidden (view full) --- 248 * Physical Address field masks 249 * 250 * General Media Event Record 251 * CXL rev 3.0 Section 8.2.9.2.1.1; Table 8-43 252 * 253 * DRAM Event Record 254 * CXL rev 3.0 section 8.2.9.2.1.2; Table 8-44 255 */ |
256#define CXL_DPA_FLAGS_MASK 0x3F 257#define CXL_DPA_MASK (~CXL_DPA_FLAGS_MASK) | 256#define CXL_DPA_FLAGS_MASK GENMASK(1, 0) 257#define CXL_DPA_MASK GENMASK_ULL(63, 6) |
258 259#define CXL_DPA_VOLATILE BIT(0) 260#define CXL_DPA_NOT_REPAIRABLE BIT(1) 261#define show_dpa_flags(flags) __print_flags(flags, "|", \ 262 { CXL_DPA_VOLATILE, "VOLATILE" }, \ 263 { CXL_DPA_NOT_REPAIRABLE, "NOT_REPAIRABLE" } \ 264) 265 --- 45 unchanged lines hidden (view full) --- 311 { CXL_GMER_VALID_RANK, "RANK" }, \ 312 { CXL_GMER_VALID_DEVICE, "DEVICE" }, \ 313 { CXL_GMER_VALID_COMPONENT, "COMPONENT" } \ 314) 315 316TRACE_EVENT(cxl_general_media, 317 318 TP_PROTO(const struct cxl_memdev *cxlmd, enum cxl_event_log_type log, | 258 259#define CXL_DPA_VOLATILE BIT(0) 260#define CXL_DPA_NOT_REPAIRABLE BIT(1) 261#define show_dpa_flags(flags) __print_flags(flags, "|", \ 262 { CXL_DPA_VOLATILE, "VOLATILE" }, \ 263 { CXL_DPA_NOT_REPAIRABLE, "NOT_REPAIRABLE" } \ 264) 265 --- 45 unchanged lines hidden (view full) --- 311 { CXL_GMER_VALID_RANK, "RANK" }, \ 312 { CXL_GMER_VALID_DEVICE, "DEVICE" }, \ 313 { CXL_GMER_VALID_COMPONENT, "COMPONENT" } \ 314) 315 316TRACE_EVENT(cxl_general_media, 317 318 TP_PROTO(const struct cxl_memdev *cxlmd, enum cxl_event_log_type log, |
319 struct cxl_event_gen_media *rec), | 319 struct cxl_region *cxlr, u64 hpa, struct cxl_event_gen_media *rec), |
320 | 320 |
321 TP_ARGS(cxlmd, log, rec), | 321 TP_ARGS(cxlmd, log, cxlr, hpa, rec), |
322 323 TP_STRUCT__entry( 324 CXL_EVT_TP_entry 325 /* General Media */ 326 __field(u64, dpa) 327 __field(u8, descriptor) 328 __field(u8, type) 329 __field(u8, transaction_type) 330 __field(u8, channel) 331 __field(u32, device) 332 __array(u8, comp_id, CXL_EVENT_GEN_MED_COMP_ID_SIZE) | 322 323 TP_STRUCT__entry( 324 CXL_EVT_TP_entry 325 /* General Media */ 326 __field(u64, dpa) 327 __field(u8, descriptor) 328 __field(u8, type) 329 __field(u8, transaction_type) 330 __field(u8, channel) 331 __field(u32, device) 332 __array(u8, comp_id, CXL_EVENT_GEN_MED_COMP_ID_SIZE) |
333 __field(u16, validity_flags) | |
334 /* Following are out of order to pack trace record */ | 333 /* Following are out of order to pack trace record */ |
334 __field(u64, hpa) 335 __field_struct(uuid_t, region_uuid) 336 __field(u16, validity_flags) |
|
335 __field(u8, rank) 336 __field(u8, dpa_flags) | 337 __field(u8, rank) 338 __field(u8, dpa_flags) |
339 __string(region_name, cxlr ? dev_name(&cxlr->dev) : "") |
|
337 ), 338 339 TP_fast_assign( 340 CXL_EVT_TP_fast_assign(cxlmd, log, rec->hdr); 341 __entry->hdr_uuid = CXL_EVENT_GEN_MEDIA_UUID; 342 343 /* General Media */ 344 __entry->dpa = le64_to_cpu(rec->phys_addr); --- 4 unchanged lines hidden (view full) --- 349 __entry->type = rec->type; 350 __entry->transaction_type = rec->transaction_type; 351 __entry->channel = rec->channel; 352 __entry->rank = rec->rank; 353 __entry->device = get_unaligned_le24(rec->device); 354 memcpy(__entry->comp_id, &rec->component_id, 355 CXL_EVENT_GEN_MED_COMP_ID_SIZE); 356 __entry->validity_flags = get_unaligned_le16(&rec->validity_flags); | 340 ), 341 342 TP_fast_assign( 343 CXL_EVT_TP_fast_assign(cxlmd, log, rec->hdr); 344 __entry->hdr_uuid = CXL_EVENT_GEN_MEDIA_UUID; 345 346 /* General Media */ 347 __entry->dpa = le64_to_cpu(rec->phys_addr); --- 4 unchanged lines hidden (view full) --- 352 __entry->type = rec->type; 353 __entry->transaction_type = rec->transaction_type; 354 __entry->channel = rec->channel; 355 __entry->rank = rec->rank; 356 __entry->device = get_unaligned_le24(rec->device); 357 memcpy(__entry->comp_id, &rec->component_id, 358 CXL_EVENT_GEN_MED_COMP_ID_SIZE); 359 __entry->validity_flags = get_unaligned_le16(&rec->validity_flags); |
360 __entry->hpa = hpa; 361 if (cxlr) { 362 __assign_str(region_name); 363 uuid_copy(&__entry->region_uuid, &cxlr->params.uuid); 364 } else { 365 __assign_str(region_name); 366 uuid_copy(&__entry->region_uuid, &uuid_null); 367 } |
|
357 ), 358 359 CXL_EVT_TP_printk("dpa=%llx dpa_flags='%s' " \ 360 "descriptor='%s' type='%s' transaction_type='%s' channel=%u rank=%u " \ | 368 ), 369 370 CXL_EVT_TP_printk("dpa=%llx dpa_flags='%s' " \ 371 "descriptor='%s' type='%s' transaction_type='%s' channel=%u rank=%u " \ |
361 "device=%x comp_id=%s validity_flags='%s'", | 372 "device=%x comp_id=%s validity_flags='%s' " \ 373 "hpa=%llx region=%s region_uuid=%pUb", |
362 __entry->dpa, show_dpa_flags(__entry->dpa_flags), 363 show_event_desc_flags(__entry->descriptor), 364 show_mem_event_type(__entry->type), 365 show_trans_type(__entry->transaction_type), 366 __entry->channel, __entry->rank, __entry->device, 367 __print_hex(__entry->comp_id, CXL_EVENT_GEN_MED_COMP_ID_SIZE), | 374 __entry->dpa, show_dpa_flags(__entry->dpa_flags), 375 show_event_desc_flags(__entry->descriptor), 376 show_mem_event_type(__entry->type), 377 show_trans_type(__entry->transaction_type), 378 __entry->channel, __entry->rank, __entry->device, 379 __print_hex(__entry->comp_id, CXL_EVENT_GEN_MED_COMP_ID_SIZE), |
368 show_valid_flags(__entry->validity_flags) | 380 show_valid_flags(__entry->validity_flags), 381 __entry->hpa, __get_str(region_name), &__entry->region_uuid |
369 ) 370); 371 372/* 373 * DRAM Event Record - DER 374 * 375 * CXL rev 3.0 section 8.2.9.2.1.2; Table 8-44 376 */ --- 18 unchanged lines hidden (view full) --- 395 { CXL_DER_VALID_ROW, "ROW" }, \ 396 { CXL_DER_VALID_COLUMN, "COLUMN" }, \ 397 { CXL_DER_VALID_CORRECTION_MASK, "CORRECTION MASK" } \ 398) 399 400TRACE_EVENT(cxl_dram, 401 402 TP_PROTO(const struct cxl_memdev *cxlmd, enum cxl_event_log_type log, | 382 ) 383); 384 385/* 386 * DRAM Event Record - DER 387 * 388 * CXL rev 3.0 section 8.2.9.2.1.2; Table 8-44 389 */ --- 18 unchanged lines hidden (view full) --- 408 { CXL_DER_VALID_ROW, "ROW" }, \ 409 { CXL_DER_VALID_COLUMN, "COLUMN" }, \ 410 { CXL_DER_VALID_CORRECTION_MASK, "CORRECTION MASK" } \ 411) 412 413TRACE_EVENT(cxl_dram, 414 415 TP_PROTO(const struct cxl_memdev *cxlmd, enum cxl_event_log_type log, |
403 struct cxl_event_dram *rec), | 416 struct cxl_region *cxlr, u64 hpa, struct cxl_event_dram *rec), |
404 | 417 |
405 TP_ARGS(cxlmd, log, rec), | 418 TP_ARGS(cxlmd, log, cxlr, hpa, rec), |
406 407 TP_STRUCT__entry( 408 CXL_EVT_TP_entry 409 /* DRAM */ 410 __field(u64, dpa) 411 __field(u8, descriptor) 412 __field(u8, type) 413 __field(u8, transaction_type) 414 __field(u8, channel) 415 __field(u16, validity_flags) 416 __field(u16, column) /* Out of order to pack trace record */ 417 __field(u32, nibble_mask) 418 __field(u32, row) 419 __array(u8, cor_mask, CXL_EVENT_DER_CORRECTION_MASK_SIZE) | 419 420 TP_STRUCT__entry( 421 CXL_EVT_TP_entry 422 /* DRAM */ 423 __field(u64, dpa) 424 __field(u8, descriptor) 425 __field(u8, type) 426 __field(u8, transaction_type) 427 __field(u8, channel) 428 __field(u16, validity_flags) 429 __field(u16, column) /* Out of order to pack trace record */ 430 __field(u32, nibble_mask) 431 __field(u32, row) 432 __array(u8, cor_mask, CXL_EVENT_DER_CORRECTION_MASK_SIZE) |
433 __field(u64, hpa) 434 __field_struct(uuid_t, region_uuid) |
|
420 __field(u8, rank) /* Out of order to pack trace record */ 421 __field(u8, bank_group) /* Out of order to pack trace record */ 422 __field(u8, bank) /* Out of order to pack trace record */ 423 __field(u8, dpa_flags) /* Out of order to pack trace record */ | 435 __field(u8, rank) /* Out of order to pack trace record */ 436 __field(u8, bank_group) /* Out of order to pack trace record */ 437 __field(u8, bank) /* Out of order to pack trace record */ 438 __field(u8, dpa_flags) /* Out of order to pack trace record */ |
439 __string(region_name, cxlr ? dev_name(&cxlr->dev) : "") |
|
424 ), 425 426 TP_fast_assign( 427 CXL_EVT_TP_fast_assign(cxlmd, log, rec->hdr); 428 __entry->hdr_uuid = CXL_EVENT_DRAM_UUID; 429 430 /* DRAM */ 431 __entry->dpa = le64_to_cpu(rec->phys_addr); --- 7 unchanged lines hidden (view full) --- 439 __entry->rank = rec->rank; 440 __entry->nibble_mask = get_unaligned_le24(rec->nibble_mask); 441 __entry->bank_group = rec->bank_group; 442 __entry->bank = rec->bank; 443 __entry->row = get_unaligned_le24(rec->row); 444 __entry->column = get_unaligned_le16(rec->column); 445 memcpy(__entry->cor_mask, &rec->correction_mask, 446 CXL_EVENT_DER_CORRECTION_MASK_SIZE); | 440 ), 441 442 TP_fast_assign( 443 CXL_EVT_TP_fast_assign(cxlmd, log, rec->hdr); 444 __entry->hdr_uuid = CXL_EVENT_DRAM_UUID; 445 446 /* DRAM */ 447 __entry->dpa = le64_to_cpu(rec->phys_addr); --- 7 unchanged lines hidden (view full) --- 455 __entry->rank = rec->rank; 456 __entry->nibble_mask = get_unaligned_le24(rec->nibble_mask); 457 __entry->bank_group = rec->bank_group; 458 __entry->bank = rec->bank; 459 __entry->row = get_unaligned_le24(rec->row); 460 __entry->column = get_unaligned_le16(rec->column); 461 memcpy(__entry->cor_mask, &rec->correction_mask, 462 CXL_EVENT_DER_CORRECTION_MASK_SIZE); |
463 __entry->hpa = hpa; 464 if (cxlr) { 465 __assign_str(region_name); 466 uuid_copy(&__entry->region_uuid, &cxlr->params.uuid); 467 } else { 468 __assign_str(region_name); 469 uuid_copy(&__entry->region_uuid, &uuid_null); 470 } |
|
447 ), 448 449 CXL_EVT_TP_printk("dpa=%llx dpa_flags='%s' descriptor='%s' type='%s' " \ 450 "transaction_type='%s' channel=%u rank=%u nibble_mask=%x " \ 451 "bank_group=%u bank=%u row=%u column=%u cor_mask=%s " \ | 471 ), 472 473 CXL_EVT_TP_printk("dpa=%llx dpa_flags='%s' descriptor='%s' type='%s' " \ 474 "transaction_type='%s' channel=%u rank=%u nibble_mask=%x " \ 475 "bank_group=%u bank=%u row=%u column=%u cor_mask=%s " \ |
452 "validity_flags='%s'", | 476 "validity_flags='%s' " \ 477 "hpa=%llx region=%s region_uuid=%pUb", |
453 __entry->dpa, show_dpa_flags(__entry->dpa_flags), 454 show_event_desc_flags(__entry->descriptor), 455 show_mem_event_type(__entry->type), 456 show_trans_type(__entry->transaction_type), 457 __entry->channel, __entry->rank, __entry->nibble_mask, 458 __entry->bank_group, __entry->bank, 459 __entry->row, __entry->column, 460 __print_hex(__entry->cor_mask, CXL_EVENT_DER_CORRECTION_MASK_SIZE), | 478 __entry->dpa, show_dpa_flags(__entry->dpa_flags), 479 show_event_desc_flags(__entry->descriptor), 480 show_mem_event_type(__entry->type), 481 show_trans_type(__entry->transaction_type), 482 __entry->channel, __entry->rank, __entry->nibble_mask, 483 __entry->bank_group, __entry->bank, 484 __entry->row, __entry->column, 485 __print_hex(__entry->cor_mask, CXL_EVENT_DER_CORRECTION_MASK_SIZE), |
461 show_dram_valid_flags(__entry->validity_flags) | 486 show_dram_valid_flags(__entry->validity_flags), 487 __entry->hpa, __get_str(region_name), &__entry->region_uuid |
462 ) 463); 464 465/* 466 * Memory Module Event Record - MMER 467 * 468 * CXL res 3.0 section 8.2.9.2.1.3; Table 8-45 469 */ --- 167 unchanged lines hidden (view full) --- 637 (__cxl_poison_addr(record) & CXL_POISON_START_MASK) 638#define cxl_poison_record_source(record) \ 639 (__cxl_poison_addr(record) & CXL_POISON_SOURCE_MASK) 640#define cxl_poison_record_dpa_length(record) \ 641 (le32_to_cpu(record->length) * CXL_POISON_LEN_MULT) 642#define cxl_poison_overflow(flags, time) \ 643 (flags & CXL_POISON_FLAG_OVERFLOW ? le64_to_cpu(time) : 0) 644 | 488 ) 489); 490 491/* 492 * Memory Module Event Record - MMER 493 * 494 * CXL res 3.0 section 8.2.9.2.1.3; Table 8-45 495 */ --- 167 unchanged lines hidden (view full) --- 663 (__cxl_poison_addr(record) & CXL_POISON_START_MASK) 664#define cxl_poison_record_source(record) \ 665 (__cxl_poison_addr(record) & CXL_POISON_SOURCE_MASK) 666#define cxl_poison_record_dpa_length(record) \ 667 (le32_to_cpu(record->length) * CXL_POISON_LEN_MULT) 668#define cxl_poison_overflow(flags, time) \ 669 (flags & CXL_POISON_FLAG_OVERFLOW ? le64_to_cpu(time) : 0) 670 |
645u64 cxl_trace_hpa(struct cxl_region *cxlr, struct cxl_memdev *memdev, u64 dpa); 646 | |
647TRACE_EVENT(cxl_poison, 648 649 TP_PROTO(struct cxl_memdev *cxlmd, struct cxl_region *cxlr, 650 const struct cxl_poison_record *record, u8 flags, 651 __le64 overflow_ts, enum cxl_poison_trace_type trace_type), 652 653 TP_ARGS(cxlmd, cxlr, record, flags, overflow_ts, trace_type), 654 --- 8 unchanged lines hidden (view full) --- 663 __field(u64, dpa) 664 __field(u32, dpa_length) 665 __array(char, uuid, 16) 666 __field(u8, source) 667 __field(u8, flags) 668 ), 669 670 TP_fast_assign( | 671TRACE_EVENT(cxl_poison, 672 673 TP_PROTO(struct cxl_memdev *cxlmd, struct cxl_region *cxlr, 674 const struct cxl_poison_record *record, u8 flags, 675 __le64 overflow_ts, enum cxl_poison_trace_type trace_type), 676 677 TP_ARGS(cxlmd, cxlr, record, flags, overflow_ts, trace_type), 678 --- 8 unchanged lines hidden (view full) --- 687 __field(u64, dpa) 688 __field(u32, dpa_length) 689 __array(char, uuid, 16) 690 __field(u8, source) 691 __field(u8, flags) 692 ), 693 694 TP_fast_assign( |
671 __assign_str(memdev, dev_name(&cxlmd->dev)); 672 __assign_str(host, dev_name(cxlmd->dev.parent)); | 695 __assign_str(memdev); 696 __assign_str(host); |
673 __entry->serial = cxlmd->cxlds->serial; 674 __entry->overflow_ts = cxl_poison_overflow(flags, overflow_ts); 675 __entry->dpa = cxl_poison_record_dpa(record); 676 __entry->dpa_length = cxl_poison_record_dpa_length(record); 677 __entry->source = cxl_poison_record_source(record); 678 __entry->trace_type = trace_type; 679 __entry->flags = flags; 680 if (cxlr) { | 697 __entry->serial = cxlmd->cxlds->serial; 698 __entry->overflow_ts = cxl_poison_overflow(flags, overflow_ts); 699 __entry->dpa = cxl_poison_record_dpa(record); 700 __entry->dpa_length = cxl_poison_record_dpa_length(record); 701 __entry->source = cxl_poison_record_source(record); 702 __entry->trace_type = trace_type; 703 __entry->flags = flags; 704 if (cxlr) { |
681 __assign_str(region, dev_name(&cxlr->dev)); | 705 __assign_str(region); |
682 memcpy(__entry->uuid, &cxlr->params.uuid, 16); 683 __entry->hpa = cxl_trace_hpa(cxlr, cxlmd, 684 __entry->dpa); 685 } else { | 706 memcpy(__entry->uuid, &cxlr->params.uuid, 16); 707 __entry->hpa = cxl_trace_hpa(cxlr, cxlmd, 708 __entry->dpa); 709 } else { |
686 __assign_str(region, ""); | 710 __assign_str(region); |
687 memset(__entry->uuid, 0, 16); 688 __entry->hpa = ULLONG_MAX; 689 } 690 ), 691 692 TP_printk("memdev=%s host=%s serial=%lld trace_type=%s region=%s " \ 693 "region_uuid=%pU hpa=0x%llx dpa=0x%llx dpa_length=0x%x " \ 694 "source=%s flags=%s overflow_time=%llu", --- 19 unchanged lines hidden --- | 711 memset(__entry->uuid, 0, 16); 712 __entry->hpa = ULLONG_MAX; 713 } 714 ), 715 716 TP_printk("memdev=%s host=%s serial=%lld trace_type=%s region=%s " \ 717 "region_uuid=%pU hpa=0x%llx dpa=0x%llx dpa_length=0x%x " \ 718 "source=%s flags=%s overflow_time=%llu", --- 19 unchanged lines hidden --- |