Blame SOURCES/0013-nvme-cli-Add-support-set-feature-event-in-PEL.patch

8aa0ec
From 859b8ee99a725bdcfbb7c8352c50449d126cffc4 Mon Sep 17 00:00:00 2001
8aa0ec
From: Maurizio Lombardi <mlombard@redhat.com>
8aa0ec
Date: Thu, 30 Jun 2022 16:41:59 +0200
8aa0ec
Subject: [PATCH 6/7] nvme-cli: Add support set feature event in PEL
8aa0ec
8aa0ec
Add "Set Feature" event in PEL.
8aa0ec
8aa0ec
Persistent Event Entries:
8aa0ec
Event Number: 0
8aa0ec
Event Type: Set Feature Event(0xb)
8aa0ec
Event Type Revision: 1
8aa0ec
Event Header Length: 21
8aa0ec
Controller Identifier: 65
8aa0ec
Event Timestamp: 564587204146155
8aa0ec
Vendor Specific Information Length: 0
8aa0ec
Event Length: 16
8aa0ec
Set Feature Event Entry:
8aa0ec
Set Feature ID  :0x7 (Number of Queues),  value:0x270027
8aa0ec
        Number of IO Completion Queues Allocated (NCQA): 40
8aa0ec
        Number of IO Submission Queues Allocated (NSQA): 40
8aa0ec
8aa0ec
Signed-off-by: Maurizio Lombardi <mlombard@redhat.com>
8aa0ec
---
8aa0ec
 nvme-print.c | 15 +++++++++++++++
8aa0ec
 1 file changed, 15 insertions(+)
8aa0ec
8aa0ec
diff --git a/nvme-print.c b/nvme-print.c
8aa0ec
index 74ecd95a..37011dbe 100755
8aa0ec
--- a/nvme-print.c
8aa0ec
+++ b/nvme-print.c
8aa0ec
@@ -1436,6 +1436,8 @@ void nvme_show_persistent_event_log(void *pevent_log_info,
8aa0ec
 {
8aa0ec
 	__u32 offset, por_info_len, por_info_list;
8aa0ec
 	__u64 *fw_rev;
8aa0ec
+	int fid, cdw11, dword_cnt;
8aa0ec
+	unsigned char *mem_buf = NULL;
8aa0ec
 	struct nvme_smart_log *smart_event;
8aa0ec
 	struct nvme_fw_commit_event *fw_commit_event;
8aa0ec
 	struct nvme_time_stamp_change_event *ts_change_event;
8aa0ec
@@ -1446,6 +1448,7 @@ void nvme_show_persistent_event_log(void *pevent_log_info,
8aa0ec
 	struct nvme_format_nvm_compln_event *format_cmpln_event;
8aa0ec
 	struct nvme_sanitize_start_event *sanitize_start_event;
8aa0ec
 	struct nvme_sanitize_compln_event *sanitize_cmpln_event;
8aa0ec
+	struct nvme_set_feature_event *set_feat_event;
8aa0ec
 	struct nvme_thermal_exc_event *thermal_exc_event;
8aa0ec
 	struct nvme_persistent_event_log_head *pevent_log_head;
8aa0ec
 	struct nvme_persistent_event_entry_head *pevent_entry_head;
8aa0ec
@@ -1659,6 +1662,18 @@ void nvme_show_persistent_event_log(void *pevent_log_info,
8aa0ec
 			printf("Completion Information: %u\n",
8aa0ec
 				le16_to_cpu(sanitize_cmpln_event->cmpln_info));
8aa0ec
 			break;
8aa0ec
+		case NVME_SET_FEATURE_EVENT:
8aa0ec
+			set_feat_event = pevent_log_info + offset;
8aa0ec
+			printf("Set Feature Event Entry: \n");
8aa0ec
+			dword_cnt =  set_feat_event->layout & 0x03;
8aa0ec
+			fid = le32_to_cpu(set_feat_event->cdw_mem[0]) & 0x000f;
8aa0ec
+			cdw11 = le32_to_cpu(set_feat_event->cdw_mem[1]);
8aa0ec
+			if (((set_feat_event->layout & 0xff) >> 2) != 0)
8aa0ec
+				mem_buf = (unsigned char *)(set_feat_event + 4 + dword_cnt * 4);
8aa0ec
+			printf("Set Feature ID  :%#02x (%s),  value:%#08x\n", fid,
8aa0ec
+					nvme_feature_to_string(fid), cdw11);
8aa0ec
+			nvme_feature_show_fields(fid, cdw11, mem_buf);
8aa0ec
+			break;
8aa0ec
 		case NVME_THERMAL_EXCURSION_EVENT:
8aa0ec
 			thermal_exc_event = pevent_log_info + offset;
8aa0ec
 			printf("Thermal Excursion Event Entry: \n");
8aa0ec
-- 
8aa0ec
2.31.1
8aa0ec