UUID_INIT(0xfe927475, 0xdd59, 0x4339,
0xa5, 0x86, 0x79, 0xba, 0xb1, 0x13, 0xb7, 0x74);
-static void cxl_event_trace_record(const struct device *dev,
+static void cxl_event_trace_record(const struct cxl_memdev *cxlmd,
enum cxl_event_log_type type,
struct cxl_event_record_raw *record)
{
struct cxl_event_gen_media *rec =
(struct cxl_event_gen_media *)record;
- trace_cxl_general_media(dev, type, rec);
+ trace_cxl_general_media(cxlmd, type, rec);
} else if (uuid_equal(id, &dram_event_uuid)) {
struct cxl_event_dram *rec = (struct cxl_event_dram *)record;
- trace_cxl_dram(dev, type, rec);
+ trace_cxl_dram(cxlmd, type, rec);
} else if (uuid_equal(id, &mem_mod_event_uuid)) {
struct cxl_event_mem_module *rec =
(struct cxl_event_mem_module *)record;
- trace_cxl_memory_module(dev, type, rec);
+ trace_cxl_memory_module(cxlmd, type, rec);
} else {
/* For unknown record types print just the header */
- trace_cxl_generic_event(dev, type, record);
+ trace_cxl_generic_event(cxlmd, type, record);
}
}
break;
for (i = 0; i < nr_rec; i++)
- cxl_event_trace_record(cxlds->dev, type,
+ cxl_event_trace_record(cxlds->cxlmd, type,
&payload->records[i]);
if (payload->flags & CXL_GET_EVENT_FLAG_OVERFLOW)
- trace_cxl_overflow(cxlds->dev, type, payload);
+ trace_cxl_overflow(cxlds->cxlmd, type, payload);
rc = cxl_clear_event_record(cxlds, type, payload);
if (rc) {
)
TRACE_EVENT(cxl_aer_uncorrectable_error,
- TP_PROTO(const struct device *dev, u32 status, u32 fe, u32 *hl),
- TP_ARGS(dev, status, fe, hl),
+ TP_PROTO(const struct cxl_memdev *cxlmd, u32 status, u32 fe, u32 *hl),
+ TP_ARGS(cxlmd, status, fe, hl),
TP_STRUCT__entry(
- __string(dev_name, dev_name(dev))
+ __string(memdev, dev_name(&cxlmd->dev))
__field(u32, status)
__field(u32, first_error)
__array(u32, header_log, CXL_HEADERLOG_SIZE_U32)
),
TP_fast_assign(
- __assign_str(dev_name, dev_name(dev));
+ __assign_str(memdev, dev_name(&cxlmd->dev));
__entry->status = status;
__entry->first_error = fe;
/*
*/
memcpy(__entry->header_log, hl, CXL_HEADERLOG_SIZE);
),
- TP_printk("%s: status: '%s' first_error: '%s'",
- __get_str(dev_name),
+ TP_printk("memdev=%s: status: '%s' first_error: '%s'",
+ __get_str(memdev),
show_uc_errs(__entry->status),
show_uc_errs(__entry->first_error)
)
)
TRACE_EVENT(cxl_aer_correctable_error,
- TP_PROTO(const struct device *dev, u32 status),
- TP_ARGS(dev, status),
+ TP_PROTO(const struct cxl_memdev *cxlmd, u32 status),
+ TP_ARGS(cxlmd, status),
TP_STRUCT__entry(
- __string(dev_name, dev_name(dev))
+ __string(memdev, dev_name(&cxlmd->dev))
__field(u32, status)
),
TP_fast_assign(
- __assign_str(dev_name, dev_name(dev));
+ __assign_str(memdev, dev_name(&cxlmd->dev));
__entry->status = status;
),
- TP_printk("%s: status: '%s'",
- __get_str(dev_name), show_ce_errs(__entry->status)
+ TP_printk("memdev=%s: status: '%s'",
+ __get_str(memdev), show_ce_errs(__entry->status)
)
);
TRACE_EVENT(cxl_overflow,
- TP_PROTO(const struct device *dev, enum cxl_event_log_type log,
+ TP_PROTO(const struct cxl_memdev *cxlmd, enum cxl_event_log_type log,
struct cxl_get_event_payload *payload),
- TP_ARGS(dev, log, payload),
+ TP_ARGS(cxlmd, log, payload),
TP_STRUCT__entry(
- __string(dev_name, dev_name(dev))
+ __string(memdev, dev_name(&cxlmd->dev))
__field(int, log)
__field(u64, first_ts)
__field(u64, last_ts)
),
TP_fast_assign(
- __assign_str(dev_name, dev_name(dev));
+ __assign_str(memdev, dev_name(&cxlmd->dev));
__entry->log = log;
__entry->count = le16_to_cpu(payload->overflow_err_count);
__entry->first_ts = le64_to_cpu(payload->first_overflow_timestamp);
__entry->last_ts = le64_to_cpu(payload->last_overflow_timestamp);
),
- TP_printk("%s: log=%s : %u records from %llu to %llu",
- __get_str(dev_name), cxl_event_log_type_str(__entry->log),
+ TP_printk("memdev=%s: log=%s : %u records from %llu to %llu",
+ __get_str(memdev), cxl_event_log_type_str(__entry->log),
__entry->count, __entry->first_ts, __entry->last_ts)
);
* See the generic_event tracepoint as an example.
*/
#define CXL_EVT_TP_entry \
- __string(dev_name, dev_name(dev)) \
+ __string(memdev, dev_name(&cxlmd->dev)) \
__field(int, log) \
__field_struct(uuid_t, hdr_uuid) \
__field(u32, hdr_flags) \
__field(u8, hdr_length) \
__field(u8, hdr_maint_op_class)
-#define CXL_EVT_TP_fast_assign(dev, l, hdr) \
- __assign_str(dev_name, dev_name(dev)); \
+#define CXL_EVT_TP_fast_assign(cxlmd, l, hdr) \
+ __assign_str(memdev, dev_name(&(cxlmd)->dev)); \
__entry->log = (l); \
memcpy(&__entry->hdr_uuid, &(hdr).id, sizeof(uuid_t)); \
__entry->hdr_length = (hdr).length; \
__entry->hdr_maint_op_class = (hdr).maint_op_class
#define CXL_EVT_TP_printk(fmt, ...) \
- TP_printk("%s log=%s : time=%llu uuid=%pUb len=%d flags='%s' " \
+ TP_printk("memdev=%s log=%s : time=%llu uuid=%pUb len=%d flags='%s' " \
"handle=%x related_handle=%x maint_op_class=%u" \
" : " fmt, \
- __get_str(dev_name), cxl_event_log_type_str(__entry->log), \
+ __get_str(memdev), cxl_event_log_type_str(__entry->log), \
__entry->hdr_timestamp, &__entry->hdr_uuid, __entry->hdr_length,\
show_hdr_flags(__entry->hdr_flags), __entry->hdr_handle, \
__entry->hdr_related_handle, __entry->hdr_maint_op_class, \
TRACE_EVENT(cxl_generic_event,
- TP_PROTO(const struct device *dev, enum cxl_event_log_type log,
+ TP_PROTO(const struct cxl_memdev *cxlmd, enum cxl_event_log_type log,
struct cxl_event_record_raw *rec),
- TP_ARGS(dev, log, rec),
+ TP_ARGS(cxlmd, log, rec),
TP_STRUCT__entry(
CXL_EVT_TP_entry
),
TP_fast_assign(
- CXL_EVT_TP_fast_assign(dev, log, rec->hdr);
+ CXL_EVT_TP_fast_assign(cxlmd, log, rec->hdr);
memcpy(__entry->data, &rec->data, CXL_EVENT_RECORD_DATA_LENGTH);
),
TRACE_EVENT(cxl_general_media,
- TP_PROTO(const struct device *dev, enum cxl_event_log_type log,
+ TP_PROTO(const struct cxl_memdev *cxlmd, enum cxl_event_log_type log,
struct cxl_event_gen_media *rec),
- TP_ARGS(dev, log, rec),
+ TP_ARGS(cxlmd, log, rec),
TP_STRUCT__entry(
CXL_EVT_TP_entry
),
TP_fast_assign(
- CXL_EVT_TP_fast_assign(dev, log, rec->hdr);
+ CXL_EVT_TP_fast_assign(cxlmd, log, rec->hdr);
/* General Media */
__entry->dpa = le64_to_cpu(rec->phys_addr);
TRACE_EVENT(cxl_dram,
- TP_PROTO(const struct device *dev, enum cxl_event_log_type log,
+ TP_PROTO(const struct cxl_memdev *cxlmd, enum cxl_event_log_type log,
struct cxl_event_dram *rec),
- TP_ARGS(dev, log, rec),
+ TP_ARGS(cxlmd, log, rec),
TP_STRUCT__entry(
CXL_EVT_TP_entry
),
TP_fast_assign(
- CXL_EVT_TP_fast_assign(dev, log, rec->hdr);
+ CXL_EVT_TP_fast_assign(cxlmd, log, rec->hdr);
/* DRAM */
__entry->dpa = le64_to_cpu(rec->phys_addr);
TRACE_EVENT(cxl_memory_module,
- TP_PROTO(const struct device *dev, enum cxl_event_log_type log,
+ TP_PROTO(const struct cxl_memdev *cxlmd, enum cxl_event_log_type log,
struct cxl_event_mem_module *rec),
- TP_ARGS(dev, log, rec),
+ TP_ARGS(cxlmd, log, rec),
TP_STRUCT__entry(
CXL_EVT_TP_entry
),
TP_fast_assign(
- CXL_EVT_TP_fast_assign(dev, log, rec->hdr);
+ CXL_EVT_TP_fast_assign(cxlmd, log, rec->hdr);
/* Memory Module Event */
__entry->event_type = rec->event_type;