Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
86 changes: 84 additions & 2 deletions plugins/ocp/ocp-telemetry-decode.c
Original file line number Diff line number Diff line change
Expand Up @@ -262,7 +262,89 @@ struct statistic_entry statistic_identifiers_map[] = {
{ 0x1A, "PERST Events Count"},
{ 0x1B, "Max Die Bad Block"},
{ 0x1C, "Max NAND Channel Bad Block"},
{ 0x1D, "Minimum NAND Channel Bad Block"}
{ 0x1D, "Minimum NAND Channel Bad Block"},
{ 0x1E, "Physical Media Units Written"},
{ 0x1F, "Physical Media Units Read"},
{ 0x20, "Bad User NAND Blocks"},
{ 0x21, "Bad System NAND Blocks"},
{ 0x22, "XOR Recovery Count"},
{ 0x23, "Uncorrectable Read Error Count"},
{ 0x24, "Soft ECC Error Count"},
{ 0x25, "End to End Correction Counts"},
{ 0x26, "System Data % Used"},
{ 0x27, "Refresh Counts"},
{ 0x28, "User Data Erase Counts"},
{ 0x29, "Thermal Throttling Status and Count"},
{ 0x2A, "DSSD Specification Version"},
{ 0x2B, "PCIe Correctable Error Count"},
{ 0x2C, "Incomplete Shutdowns"},
{ 0x2D, "% Free Blocks"},
{ 0x2E, "Capacitor Health"},
{ 0x2F, "NVM Express Base Errata Version"},
{ 0x30, "NVM Command Set Errata Version"},
{ 0x31, "NVM Express Management Interface Errata Version"},
{ 0x32, "Unaligned I/O"},
{ 0x33, "Security Version Number"},
{ 0x34, "Total NUSE"},
{ 0x35, "PLP Start Count"},
{ 0x36, "Endurance Estimate"},
{ 0x37, "PCIe Link Retraining Count"},
{ 0x38, "Power State Change Count"},
{ 0x39, "Lowest Permitted Firmware Revision"},
{ 0x3A, "Log Page Version"},
{ 0x3B, "Media Dies Offline"},
{ 0x3C, "Max Temperature Recorded"},
{ 0x3D, "NAND Avg. Erase Count"},
{ 0x3E, "Command Timeouts"},
{ 0x3F, "System Area Program Fail Count"},
{ 0x40, "System Area Read Fail Count"},
{ 0x41, "System Area Erase Fail Count"},
{ 0x42, "Max Peak Power Capability"},
{ 0x43, "Current Average Power"},
{ 0x44, "Lifetime Power Consumed"},
{ 0x45, "Error / Assert Count"},
{ 0x46, "Device Busy Time"},
{ 0x47, "Critical Warning"},
{ 0x48, "Composite Temperature"},
{ 0x49, "Available Spare"},
{ 0x4A, "Available Spare Threshold"},
{ 0x4B, "Percentage Used"},
{ 0x4C, "Endurance Group Critical Warning Summary"},
{ 0x4D, "Data Units Read"},
{ 0x4E, "Data Units Written"},
{ 0x4F, "Host Read Commands"},
{ 0x50, "Host Write Commands"},
{ 0x51, "Controller Busy Time"},
{ 0x52, "Power Cycles"},
{ 0x53, "Power On Hours"},
{ 0x54, "Unsafe Shutdowns"},
{ 0x55, "Media and Data Integrity Errors"},
{ 0x56, "Number of Error Information Log Entries"},
{ 0x57, "Warning Composite Temperature Time"},
{ 0x58, "Critical Composite Temperature Time"},
{ 0x59, "Temperature Sensor 1"},
{ 0x5A, "Temperature Sensor 2"},
{ 0x5B, "Temperature Sensor 3"},
{ 0x5C, "Temperature Sensor 4"},
{ 0x5D, "Temperature Sensor 5"},
{ 0x5E, "Temperature Sensor 6"},
{ 0x5F, "Temperature Sensor 7"},
{ 0x60, "Temperature Sensor 8"},
{ 0x61, "Thermal Management Temperature 1 Transition Count"},
{ 0x62, "Thermal Management Temperature 2 Transition Count"},
{ 0x63, "Total Time For Thermal Management Temperature 1"},
{ 0x64, "Total Time For Thermal Management Temperature 2"},
{ 0x65, "Endurance Estimate"},
{ 0x66, "Data Units Read"},
{ 0x67, "Data Units Written"},
{ 0x68, "Media Units Written"},
{ 0x69, "Number of Error Information Log Entries"},
{ 0x6A, "Form Factor"},
{ 0x6B, "Dies In Use Bad NAND Blocks"},
{ 0x6C, "Proactive Bad Die Retirement"},
{ 0x6D, "Namespace ID Context Statistic Descriptor"},
{ 0x6E, "Controller ID Context Statistic Descriptor"},
{ 0x6F, "Queue ID Context Statistic Descriptor"}
};

struct request_data host_log_page_header[] = {
Expand Down Expand Up @@ -562,7 +644,7 @@ int get_statistic_id_ascii_string(int identifier, char *description)

// If ASCII string isn't found, see in our internal Map
// for 2.5 Spec defined strings
if (identifier <= 0x1D) {
if (identifier <= 0x6F) {
strcpy(description, statistic_identifiers_map[identifier].description);
return 0;
}
Expand Down