mbox series

[v4,0/6] Update Event Records to CXL spec rev 3.1

Message ID 20241120093745.1847-1-shiju.jose@huawei.com
Headers show
Series Update Event Records to CXL spec rev 3.1 | expand

Message

Shiju Jose Nov. 20, 2024, 9:37 a.m. UTC
From: Shiju Jose <shiju.jose@huawei.com>

Add updates for the changes in CXL spec rev 3.1 in the CXL events
records and CXL trace events implementation.

Notes:
=====
1. The number of decoded strings in TP_printk() caused parsing error when
libtraceevent in userspace parses the CXL trace events, for rasdaemon.
It was found that long decoded strings of field values in the TP_printk()
caused the issue. As a solution, decoding of some fields in the TP_printk()
are removed to accommodate the new fields. 
Decoding of all these fields is added in the userspace tool rasdaemon.

2. Verified with modified CXL error injection in QEMU CXL emulation and
CXL mock test in kernel.(Thanks to Jonathan for verify with CXL mock test).

Shiju Jose (6):
  cxl/events: Update Common Event Record to CXL spec rev 3.1
  cxl/events: Add Component Identifier formatting for CXL spec rev 3.1
  cxl/events: Update General Media Event Record to CXL spec rev 3.1
  cxl/events: Update DRAM Event Record to CXL spec rev 3.1
  cxl/events: Update Memory Module Event Record to CXL spec rev 3.1
  cxl/test: Update test code for event records to CXL spec rev 3.1

Changes:
V3 -> V4
1. Changes for the parsing error parsing error when libtraceevent in
userspace parses the CXL trace events, for rasdaemon.
It was found that long decoded strings of field values in the TP_printk()
caused the issue, looks like due to buffer overflow/corruption.
Increasing known buffer sizes in userspace and kernel did not help.
As a solution, decoding of some fields in the TP_printk() are removed
to accommodate the new fields.
Decoding of these fields is added in the userspace tool rasdaemon.

V2 -> V3
1. Changes for the feedbacks from Jonathan.
 - Added printing component Id format bit in show_valid_flags()
 - Modified parsing component ID in patch [2] and added logging
   of raw comp-id, comp_id_pldm_flags, PLDM entity id and
   PLDM resource id in patches 3 to 4.
 
V1 -> V2
1. Changes for the feedbacks from Jonathan.
  - Separate patch for Component Identifier formatting.
  - Moved printing of event sub type after event type.
  - For memory module event, rename sub_type to event_sub_type. 
2. Changes for the feedbacks from Alison.
  - Updated patch's subject
  - Updated CXL test code for CXL spec rev 3.1 event records.
3. Changed logic for Component Identifier formatting and other improvements.

 drivers/cxl/core/trace.h     | 233 ++++++++++++++++++++++++++---------
 include/cxl/event.h          |  28 +++--
 tools/testing/cxl/test/mem.c |  23 +++-
 3 files changed, 217 insertions(+), 67 deletions(-)