]> www.infradead.org Git - users/sagi/nvme-cli.git/commitdiff
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)
committerDaniel Wagner <dwagner@suse.de>
Mon, 15 Nov 2021 11:06:29 +0000 (12:06 +0100)
plugins/wdc/wdc-nvme.c

index 62164cb1e9a4094c47b5d685ea6e7849838df1d7..b8b070d144f02b056b793651804b9b313147eb8a 100644 (file)
@@ -4411,10 +4411,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",
@@ -4492,10 +4494,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",