Loading examples/nvme/identify/identify.c +10 −0 Original line number Diff line number Diff line Loading @@ -676,6 +676,7 @@ print_controller(struct spdk_nvme_ctrlr *ctrlr, const struct spdk_nvme_transport features[SPDK_NVME_FEAT_TEMPERATURE_THRESHOLD].result, features[SPDK_NVME_FEAT_TEMPERATURE_THRESHOLD].result - 273); printf("Available Spare: %u%%\n", health_page.available_spare); printf("Available Spare Threshold: %u%%\n", health_page.available_spare_threshold); printf("Life Percentage Used: %u%%\n", health_page.percentage_used); printf("Data Units Read: "); print_uint128_dec(health_page.data_units_read); Loading Loading @@ -707,6 +708,15 @@ print_controller(struct spdk_nvme_ctrlr *ctrlr, const struct spdk_nvme_transport printf("Lifetime Error Log Entries: "); print_uint128_dec(health_page.num_error_info_log_entries); printf("\n"); printf("Warning Temperature Time: %u minutes\n", health_page.warning_temp_time); printf("Critical Temperature Time: %u minutes\n", health_page.critical_temp_time); for (i = 0; i < 8; i++) { if (health_page.temp_sensor[i] != 0) { printf("Temperature Sensor %d: %u Kelvin (%u Celsius)\n", i + 1, health_page.temp_sensor[i], health_page.temp_sensor[i] - 273); } } printf("\n"); } Loading include/spdk/nvme_spec.h +5 −1 Original line number Diff line number Diff line Loading @@ -1409,8 +1409,12 @@ struct __attribute__((packed)) spdk_nvme_health_information_page { uint64_t unsafe_shutdowns[2]; uint64_t media_errors[2]; uint64_t num_error_info_log_entries[2]; /* Controller temperature related. */ uint32_t warning_temp_time; uint32_t critical_temp_time; uint16_t temp_sensor[8]; uint8_t reserved2[320]; uint8_t reserved2[296]; }; SPDK_STATIC_ASSERT(sizeof(struct spdk_nvme_health_information_page) == 512, "Incorrect size"); Loading Loading
examples/nvme/identify/identify.c +10 −0 Original line number Diff line number Diff line Loading @@ -676,6 +676,7 @@ print_controller(struct spdk_nvme_ctrlr *ctrlr, const struct spdk_nvme_transport features[SPDK_NVME_FEAT_TEMPERATURE_THRESHOLD].result, features[SPDK_NVME_FEAT_TEMPERATURE_THRESHOLD].result - 273); printf("Available Spare: %u%%\n", health_page.available_spare); printf("Available Spare Threshold: %u%%\n", health_page.available_spare_threshold); printf("Life Percentage Used: %u%%\n", health_page.percentage_used); printf("Data Units Read: "); print_uint128_dec(health_page.data_units_read); Loading Loading @@ -707,6 +708,15 @@ print_controller(struct spdk_nvme_ctrlr *ctrlr, const struct spdk_nvme_transport printf("Lifetime Error Log Entries: "); print_uint128_dec(health_page.num_error_info_log_entries); printf("\n"); printf("Warning Temperature Time: %u minutes\n", health_page.warning_temp_time); printf("Critical Temperature Time: %u minutes\n", health_page.critical_temp_time); for (i = 0; i < 8; i++) { if (health_page.temp_sensor[i] != 0) { printf("Temperature Sensor %d: %u Kelvin (%u Celsius)\n", i + 1, health_page.temp_sensor[i], health_page.temp_sensor[i] - 273); } } printf("\n"); } Loading
include/spdk/nvme_spec.h +5 −1 Original line number Diff line number Diff line Loading @@ -1409,8 +1409,12 @@ struct __attribute__((packed)) spdk_nvme_health_information_page { uint64_t unsafe_shutdowns[2]; uint64_t media_errors[2]; uint64_t num_error_info_log_entries[2]; /* Controller temperature related. */ uint32_t warning_temp_time; uint32_t critical_temp_time; uint16_t temp_sensor[8]; uint8_t reserved2[320]; uint8_t reserved2[296]; }; SPDK_STATIC_ASSERT(sizeof(struct spdk_nvme_health_information_page) == 512, "Incorrect size"); Loading