]> www.infradead.org Git - users/dwmw2/linux.git/commitdiff
cxl/events: Update Common Event Record to CXL spec rev 3.1
authorShiju Jose <shiju.jose@huawei.com>
Sat, 11 Jan 2025 09:17:51 +0000 (09:17 +0000)
committerDave Jiang <dave.jiang@intel.com>
Mon, 13 Jan 2025 16:33:21 +0000 (09:33 -0700)
CXL spec 3.1 section 8.2.9.2.1 Table 8-42, Common Event Record format has
updated with Maintenance Operation Subclass information.

Add updates for the above spec change in the CXL events record and CXL
common trace event implementations.

Reviewed-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
Reviewed-by: Davidlohr Bueso <dave@stgolabs.net>
Reviewed-by: Ira Weiny <ira.weiny@intel.com>
Signed-off-by: Shiju Jose <shiju.jose@huawei.com>
Reviewed-by: Fan Ni <fan.ni@samsung.com>
Link: https://patch.msgid.link/20250111091756.1682-2-shiju.jose@huawei.com
Signed-off-by: Dave Jiang <dave.jiang@intel.com>
drivers/cxl/core/trace.h
include/cxl/event.h

index 8389a94adb1a681827209db46360d3d57c6672ce..7305974e2301e2f8de79b2651dd3bcfd06a224fe 100644 (file)
@@ -166,11 +166,13 @@ TRACE_EVENT(cxl_overflow,
 #define CXL_EVENT_RECORD_FLAG_MAINT_NEEDED     BIT(3)
 #define CXL_EVENT_RECORD_FLAG_PERF_DEGRADED    BIT(4)
 #define CXL_EVENT_RECORD_FLAG_HW_REPLACE       BIT(5)
+#define CXL_EVENT_RECORD_FLAG_MAINT_OP_SUB_CLASS_VALID BIT(6)
 #define show_hdr_flags(flags)  __print_flags(flags, " | ",                        \
        { CXL_EVENT_RECORD_FLAG_PERMANENT,      "PERMANENT_CONDITION"           }, \
        { CXL_EVENT_RECORD_FLAG_MAINT_NEEDED,   "MAINTENANCE_NEEDED"            }, \
        { CXL_EVENT_RECORD_FLAG_PERF_DEGRADED,  "PERFORMANCE_DEGRADED"          }, \
-       { CXL_EVENT_RECORD_FLAG_HW_REPLACE,     "HARDWARE_REPLACEMENT_NEEDED"   }  \
+       { CXL_EVENT_RECORD_FLAG_HW_REPLACE,     "HARDWARE_REPLACEMENT_NEEDED"   },  \
+       { CXL_EVENT_RECORD_FLAG_MAINT_OP_SUB_CLASS_VALID,       "MAINT_OP_SUB_CLASS_VALID" }    \
 )
 
 /*
@@ -197,7 +199,8 @@ TRACE_EVENT(cxl_overflow,
        __field(u16, hdr_related_handle)                        \
        __field(u64, hdr_timestamp)                             \
        __field(u8, hdr_length)                                 \
-       __field(u8, hdr_maint_op_class)
+       __field(u8, hdr_maint_op_class)                         \
+       __field(u8, hdr_maint_op_sub_class)
 
 #define CXL_EVT_TP_fast_assign(cxlmd, l, hdr)                                  \
        __assign_str(memdev);                           \
@@ -209,17 +212,19 @@ TRACE_EVENT(cxl_overflow,
        __entry->hdr_handle = le16_to_cpu((hdr).handle);                        \
        __entry->hdr_related_handle = le16_to_cpu((hdr).related_handle);        \
        __entry->hdr_timestamp = le64_to_cpu((hdr).timestamp);                  \
-       __entry->hdr_maint_op_class = (hdr).maint_op_class
+       __entry->hdr_maint_op_class = (hdr).maint_op_class;                     \
+       __entry->hdr_maint_op_sub_class = (hdr).maint_op_sub_class
 
 #define CXL_EVT_TP_printk(fmt, ...) \
        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,                                     \
+               "maint_op_class=%u maint_op_sub_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,        \
                __entry->hdr_related_handle, __entry->hdr_maint_op_class,       \
+               __entry->hdr_maint_op_sub_class,        \
                ##__VA_ARGS__)
 
 TRACE_EVENT(cxl_generic_event,
index 0bea1afbd747c4937b15703b581c569e7fa45ae4..e1d485ad376b4a1bca536382dda4ac7836e98e35 100644 (file)
@@ -18,7 +18,8 @@ struct cxl_event_record_hdr {
        __le16 related_handle;
        __le64 timestamp;
        u8 maint_op_class;
-       u8 reserved[15];
+       u8 maint_op_sub_class;
+       u8 reserved[14];
 } __packed;
 
 struct cxl_event_media_hdr {