diff mbox series

[v2,3/3] cxl/trace: Add serial number to trace points

Message ID 20230208-cxl-event-names-v2-3-fca130c2c68b@intel.com
State Accepted
Commit 279676c9aa5e5f11377dddfdecfd22df526ee9b8
Headers show
Series cxl: Enhance trace point information | expand

Commit Message

Ira Weiny Feb. 15, 2023, 4:12 a.m. UTC
Device serial numbers are useful information for the user.

Add device serial numbers to all the trace points.

Cc: Steven Rostedt <rostedt@goodmis.org>
Cc: Dave Jiang <dave.jiang@intel.com>
Signed-off-by: Ira Weiny <ira.weiny@intel.com>

---
NOTE: Device serial numbers default to 0 but can be added in QEMU with
the following syntax for testing:

	"-device cxl-type3,sn=<serial>,..."

Changes for v2
	From Dan
		New patch -- don't forget the serial number
---
 drivers/cxl/core/trace.h | 28 ++++++++++++++++++----------
 1 file changed, 18 insertions(+), 10 deletions(-)
diff mbox series

Patch

diff --git a/drivers/cxl/core/trace.h b/drivers/cxl/core/trace.h
index ed69e558187b..9b8d3d997834 100644
--- a/drivers/cxl/core/trace.h
+++ b/drivers/cxl/core/trace.h
@@ -52,6 +52,7 @@  TRACE_EVENT(cxl_aer_uncorrectable_error,
 	TP_STRUCT__entry(
 		__string(memdev, dev_name(&cxlmd->dev))
 		__string(host, dev_name(cxlmd->dev.parent))
+		__field(u64, serial)
 		__field(u32, status)
 		__field(u32, first_error)
 		__array(u32, header_log, CXL_HEADERLOG_SIZE_U32)
@@ -59,6 +60,7 @@  TRACE_EVENT(cxl_aer_uncorrectable_error,
 	TP_fast_assign(
 		__assign_str(memdev, dev_name(&cxlmd->dev));
 		__assign_str(host, dev_name(cxlmd->dev.parent));
+		__entry->serial = cxlmd->cxlds->serial;
 		__entry->status = status;
 		__entry->first_error = fe;
 		/*
@@ -67,8 +69,8 @@  TRACE_EVENT(cxl_aer_uncorrectable_error,
 		 */
 		memcpy(__entry->header_log, hl, CXL_HEADERLOG_SIZE);
 	),
-	TP_printk("memdev=%s host=%s: status: '%s' first_error: '%s'",
-		  __get_str(memdev), __get_str(host),
+	TP_printk("memdev=%s host=%s serial=%lld: status: '%s' first_error: '%s'",
+		  __get_str(memdev), __get_str(host), __entry->serial,
 		  show_uc_errs(__entry->status),
 		  show_uc_errs(__entry->first_error)
 	)
@@ -98,15 +100,17 @@  TRACE_EVENT(cxl_aer_correctable_error,
 	TP_STRUCT__entry(
 		__string(memdev, dev_name(&cxlmd->dev))
 		__string(host, dev_name(cxlmd->dev.parent))
+		__field(u64, serial)
 		__field(u32, status)
 	),
 	TP_fast_assign(
 		__assign_str(memdev, dev_name(&cxlmd->dev));
 		__assign_str(host, dev_name(cxlmd->dev.parent));
+		__entry->serial = cxlmd->cxlds->serial;
 		__entry->status = status;
 	),
-	TP_printk("memdev=%s host=%s: status: '%s'",
-		  __get_str(memdev), __get_str(host),
+	TP_printk("memdev=%s host=%s serial=%lld: status: '%s'",
+		  __get_str(memdev), __get_str(host), __entry->serial,
 		  show_ce_errs(__entry->status)
 	)
 );
@@ -129,6 +133,7 @@  TRACE_EVENT(cxl_overflow,
 		__string(memdev, dev_name(&cxlmd->dev))
 		__string(host, dev_name(cxlmd->dev.parent))
 		__field(int, log)
+		__field(u64, serial)
 		__field(u64, first_ts)
 		__field(u64, last_ts)
 		__field(u16, count)
@@ -137,14 +142,15 @@  TRACE_EVENT(cxl_overflow,
 	TP_fast_assign(
 		__assign_str(memdev, dev_name(&cxlmd->dev));
 		__assign_str(host, dev_name(cxlmd->dev.parent));
+		__entry->serial = cxlmd->cxlds->serial;
 		__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("memdev=%s host=%s: log=%s : %u records from %llu to %llu",
-		__get_str(memdev), __get_str(host),
+	TP_printk("memdev=%s host=%s serial=%lld: log=%s : %u records from %llu to %llu",
+		__get_str(memdev), __get_str(host), __entry->serial,
 		cxl_event_log_type_str(__entry->log), __entry->count,
 		__entry->first_ts, __entry->last_ts)
 
@@ -182,6 +188,7 @@  TRACE_EVENT(cxl_overflow,
 	__string(host, dev_name(cxlmd->dev.parent))		\
 	__field(int, log)					\
 	__field_struct(uuid_t, hdr_uuid)			\
+	__field(u64, serial)					\
 	__field(u32, hdr_flags)					\
 	__field(u16, hdr_handle)				\
 	__field(u16, hdr_related_handle)			\
@@ -193,6 +200,7 @@  TRACE_EVENT(cxl_overflow,
 	__assign_str(memdev, dev_name(&(cxlmd)->dev));				\
 	__assign_str(host, dev_name((cxlmd)->dev.parent));			\
 	__entry->log = (l);							\
+	__entry->serial = (cxlmd)->cxlds->serial;				\
 	memcpy(&__entry->hdr_uuid, &(hdr).id, sizeof(uuid_t));			\
 	__entry->hdr_length = (hdr).length;					\
 	__entry->hdr_flags = get_unaligned_le24((hdr).flags);			\
@@ -202,10 +210,10 @@  TRACE_EVENT(cxl_overflow,
 	__entry->hdr_maint_op_class = (hdr).maint_op_class
 
 #define CXL_EVT_TP_printk(fmt, ...) \
-	TP_printk("memdev=%s host=%s log=%s : time=%llu uuid=%pUb len=%d "	\
-		"flags='%s' handle=%x related_handle=%x maint_op_class=%u"	\
-		" : " fmt,							\
-		__get_str(memdev), __get_str(host),				\
+	TP_printk("memdev=%s host=%s serial=%lld log=%s : time=%llu uuid=%pUb "	\
+		"len=%d flags='%s' handle=%x related_handle=%x "		\
+		"maint_op_class=%u : " fmt,					\
+		__get_str(memdev), __get_str(host), __entry->serial,		\
 		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,	\