]> www.infradead.org Git - users/sagi/nvme-cli.git/commitdiff
[nvme-cli] Split media units written/read into hi/lo 64 bit fields
authorJeff Lien <jeff.lien@wdc.com>
Wed, 21 Apr 2021 13:15:50 +0000 (08:15 -0500)
committerKeith Busch <kbusch@kernel.org>
Tue, 24 Aug 2021 15:13:59 +0000 (09:13 -0600)
plugins/wdc/wdc-nvme.c

index 44683447a3360d5d5f841d229623c1afdbc671a9..f74a11f3379f2db75fd3ccffde47d3b72a6253c7 100644 (file)
@@ -4351,10 +4351,12 @@ static void wdc_print_smart_cloud_attr_C0_normal(void *data)
 
        printf("  SMART Cloud Attributes :- \n");
 
-       printf("  Physical media units written                  %.0Lf\n",
-                       int128_to_double(&log_data[SCAO_PMUW]));
-       printf("  Physical media units Read                     %.0Lf\n",
-                       int128_to_double(&log_data[SCAO_PMUR]));
+       printf("  Physical media units written -                %"PRIu64" %"PRIu64"\n",
+                       (uint64_t)le64_to_cpu(*(uint64_t *)&log_data[SCAO_PMUW+8] & 0xFFFFFFFFFFFFFFFF),
+                       (uint64_t)le64_to_cpu(*(uint64_t *)&log_data[SCAO_PMUW] & 0xFFFFFFFFFFFFFFFF));
+       printf("  Physical media units read    -                %"PRIu64" %"PRIu64"\n",
+                       (uint64_t)le64_to_cpu(*(uint64_t *)&log_data[SCAO_PMUR+8] & 0xFFFFFFFFFFFFFFFF),
+                       (uint64_t)le64_to_cpu(*(uint64_t *)&log_data[SCAO_PMUR] & 0xFFFFFFFFFFFFFFFF));
        printf("  Bad user nand blocks - Raw                    %"PRIu64"\n",
                        (uint64_t)le64_to_cpu(*(uint64_t *)&log_data[SCAO_BUNBR] & 0x0000FFFFFFFFFFFF));
        printf("  Bad user nand blocks - Normalized             %d\n",
@@ -4432,10 +4434,14 @@ static void wdc_print_smart_cloud_attr_C0_json(void *data)
        uint16_t smart_log_ver = 0;
 
        root = json_create_object();
-       json_object_add_value_float(root, "Physical media units written",
-                       int128_to_double(&log_data[SCAO_PMUW]));
-       json_object_add_value_int(root, "Physical media units Read",
-                       int128_to_double(&log_data[SCAO_PMUR]));
+       json_object_add_value_int(root, "Physical media units written hi",
+                       (uint64_t)le64_to_cpu(*(uint64_t *)&log_data[SCAO_PMUW+8] & 0xFFFFFFFFFFFFFFFF));
+       json_object_add_value_int(root, "Physical media units written lo",
+                       (uint64_t)le64_to_cpu(*(uint64_t *)&log_data[SCAO_PMUW] & 0xFFFFFFFFFFFFFFFF));
+       json_object_add_value_int(root, "Physical media units read hi",
+                       (uint64_t)le64_to_cpu(*(uint64_t *)&log_data[SCAO_PMUR+8] & 0xFFFFFFFFFFFFFFFF));
+       json_object_add_value_int(root, "Physical media units read lo",
+                       (uint64_t)le64_to_cpu(*(uint64_t *)&log_data[SCAO_PMUR] & 0xFFFFFFFFFFFFFFFF));
        json_object_add_value_uint(root, "Bad user nand blocks - Raw",
                        (uint64_t)le64_to_cpu(*(uint64_t *)&log_data[SCAO_BUNBR] & 0x0000FFFFFFFFFFFF));
        json_object_add_value_uint(root, "Bad user nand blocks - Normalized",