From: mskorzhinskiy@solarflare.com (Mikhail Skorzhinskii)
Subject: [PATCH nvme-cli 01/13] Remove superfluous casts
Date: Mon, 24 Jun 2019 12:00:26 +0200 [thread overview]
Message-ID: <87tvcfnw05.fsf@solarflare.com> (raw)
In-Reply-To: <20190619173701.8263-2-bvanassche@acm.org>
Hi Bart,
I'm not completely sure that anyone interesting in fixing this, but this
change breaks compilation on anything with glibc v2.24 or lower. This is
due to long lasting bug #16458[1] which was fixed 2 years ago and landed
in glibc v2.25.
I noticed it due to compiling it in rhel7\centos7 which is using glibc
v2.17.
May be it is possible to revert this change for a while?
Mikhail
[1] https://sourceware.org/bugzilla/show_bug.cgi?id=16458
Bart Van Assche <bvanassche at acm.org> writes:
> The le64_to_cpu() definition is as follows:
>
> #define le64_to_cpu(x) le64toh((__force __u64)(x))
>
> According to the le64toh() man page, the return type of that function
> is uint64_t. Hence drop the cast from (uint64_t)le64_to_cpu(x)
> expressions. This patch has been generated as follows:
>
> git ls-tree --name-only -r HEAD |
> while read f; do
> [ -f "$f" ] && sed -i 's/(uint64_t)le64_to_cpu(/le64_to_cpu(/g' "$f"
> done
>
> Signed-off-by: Bart Van Assche <bvanassche at acm.org>
> ---
> fabrics.c | 2 +-
> nvme-print.c | 40 +++++++++---------
> plugins/intel/intel-nvme.c | 16 +++----
> plugins/seagate/seagate-nvme.c | 26 ++++++------
> plugins/wdc/wdc-nvme.c | 76 +++++++++++++++++-----------------
> 5 files changed, 80 insertions(+), 80 deletions(-)
>
> diff --git a/fabrics.c b/fabrics.c
> index 9ed4a5684f6c..b17f4061e0b8 100644
> --- a/fabrics.c
> +++ b/fabrics.c
> @@ -420,7 +420,7 @@ static void print_discovery_log(struct nvmf_disc_rsp_page_hdr *log, int numrec)
>
> printf("\nDiscovery Log Number of Records %d, "
> "Generation counter %"PRIu64"\n",
> - numrec, (uint64_t)le64_to_cpu(log->genctr));
> + numrec, le64_to_cpu(log->genctr));
>
> for (i = 0; i < numrec; i++) {
> struct nvmf_disc_rsp_page_entry *e = &log->entries[i];
> diff --git a/nvme-print.c b/nvme-print.c
> index b058d73f7b57..ea8f720748ef 100644
> --- a/nvme-print.c
> +++ b/nvme-print.c
> @@ -680,9 +680,9 @@ void show_nvme_id_ns(struct nvme_id_ns *ns, unsigned int mode)
> int human = mode & HUMAN,
> vs = mode & VS;
>
> - printf("nsze : %#"PRIx64"\n", (uint64_t)le64_to_cpu(ns->nsze));
> - printf("ncap : %#"PRIx64"\n", (uint64_t)le64_to_cpu(ns->ncap));
> - printf("nuse : %#"PRIx64"\n", (uint64_t)le64_to_cpu(ns->nuse));
> + printf("nsze : %#"PRIx64"\n", le64_to_cpu(ns->nsze));
> + printf("ncap : %#"PRIx64"\n", le64_to_cpu(ns->ncap));
> + printf("nuse : %#"PRIx64"\n", le64_to_cpu(ns->nuse));
> printf("nsfeat : %#x\n", ns->nsfeat);
> if (human)
> show_nvme_id_ns_nsfeat(ns->nsfeat);
> @@ -1221,13 +1221,13 @@ void show_error_log(struct nvme_error_log_page *err_log, int entries, const char
> for (i = 0; i < entries; i++) {
> printf(" Entry[%2d] \n", i);
> printf(".................\n");
> - printf("error_count : %"PRIu64"\n", (uint64_t)le64_to_cpu(err_log[i].error_count));
> + printf("error_count : %"PRIu64"\n", le64_to_cpu(err_log[i].error_count));
> printf("sqid : %d\n", err_log[i].sqid);
> printf("cmdid : %#x\n", err_log[i].cmdid);
> printf("status_field : %#x(%s)\n", err_log[i].status_field,
> nvme_status_to_string(err_log[i].status_field >> 1));
> printf("parm_err_loc : %#x\n", err_log[i].parm_error_location);
> - printf("lba : %#"PRIx64"\n",(uint64_t)le64_to_cpu(err_log[i].lba));
> + printf("lba : %#"PRIx64"\n",le64_to_cpu(err_log[i].lba));
> printf("nsid : %#x\n", err_log[i].nsid);
> printf("vs : %d\n", err_log[i].vs);
> printf("cs : %#"PRIx64"\n", (uint64_t) err_log[i].cs);
> @@ -1258,8 +1258,8 @@ void show_nvme_resv_report(struct nvme_reservation_status *status, int bytes, __
> printf("regctl[%d] :\n", i);
> printf(" cntlid : %x\n", le16_to_cpu(status->regctl_ds[i].cntlid));
> printf(" rcsts : %x\n", status->regctl_ds[i].rcsts);
> - printf(" hostid : %"PRIx64"\n", (uint64_t)le64_to_cpu(status->regctl_ds[i].hostid));
> - printf(" rkey : %"PRIx64"\n", (uint64_t)le64_to_cpu(status->regctl_ds[i].rkey));
> + printf(" hostid : %"PRIx64"\n", le64_to_cpu(status->regctl_ds[i].hostid));
> + printf(" rkey : %"PRIx64"\n", le64_to_cpu(status->regctl_ds[i].rkey));
> }
> } else {
> struct nvme_reservation_status_ext *ext_status = (struct nvme_reservation_status_ext *)status;
> @@ -1272,7 +1272,7 @@ void show_nvme_resv_report(struct nvme_reservation_status *status, int bytes, __
> printf("regctlext[%d] :\n", i);
> printf(" cntlid : %x\n", le16_to_cpu(ext_status->regctl_eds[i].cntlid));
> printf(" rcsts : %x\n", ext_status->regctl_eds[i].rcsts);
> - printf(" rkey : %"PRIx64"\n", (uint64_t)le64_to_cpu(ext_status->regctl_eds[i].rkey));
> + printf(" rkey : %"PRIx64"\n", le64_to_cpu(ext_status->regctl_eds[i].rkey));
> printf(" hostid : ");
> for (j = 0; j < 16; j++)
> printf("%x", ext_status->regctl_eds[i].hostid[j]);
> @@ -1518,7 +1518,7 @@ void show_ana_log(struct nvme_ana_rsp_hdr *ana_log, const char *devname)
> devname);
> printf("ANA LOG HEADER :-\n");
> printf("chgcnt : %"PRIu64"\n",
> - (uint64_t)le64_to_cpu(hdr->chgcnt));
> + le64_to_cpu(hdr->chgcnt));
> printf("ngrps : %u\n", le16_to_cpu(hdr->ngrps));
> printf("ANA Log Desc :-\n");
>
> @@ -1531,7 +1531,7 @@ void show_ana_log(struct nvme_ana_rsp_hdr *ana_log, const char *devname)
> printf("grpid : %u\n", le32_to_cpu(desc->grpid));
> printf("nnsids : %u\n", le32_to_cpu(desc->nnsids));
> printf("chgcnt : %"PRIu64"\n",
> - (uint64_t)le64_to_cpu(desc->chgcnt));
> + le64_to_cpu(desc->chgcnt));
> printf("state : %s\n",
> nvme_ana_state_to_string(desc->state));
> for (j = 0; j < le32_to_cpu(desc->nnsids); j++)
> @@ -1598,14 +1598,14 @@ void show_self_test_log(struct nvme_self_test_log *self_test, const char *devnam
> temp = self_test->result[i].valid_diagnostic_info;
> printf(" Valid Diagnostic Information : %#x\n", temp);
> printf(" Power on hours (POH) : %#"PRIx64"\n",
> - (uint64_t)le64_to_cpu(self_test->result[i].power_on_hours));
> + le64_to_cpu(self_test->result[i].power_on_hours));
>
> if (temp & NVME_SELF_TEST_VALID_NSID)
> printf(" Namespace Identifier : %#x\n",
> le32_to_cpu(self_test->result[i].nsid));
> if (temp & NVME_SELF_TEST_VALID_FLBA)
> printf(" Failing LBA : %#"PRIx64"\n",
> - (uint64_t)le64_to_cpu(self_test->result[i].failing_lba));
> + le64_to_cpu(self_test->result[i].failing_lba));
> if (temp & NVME_SELF_TEST_VALID_SCT)
> printf(" Status Code Type : %#x\n",
> self_test->result[i].status_code_type);
> @@ -2012,9 +2012,9 @@ static const char *nvme_plm_window(__u32 plm)
> static void show_plm_config(struct nvme_plm_config *plmcfg)
> {
> printf("\tEnable Event :%04x\n", le16_to_cpu(plmcfg->enable_event));
> - printf("\tDTWIN Reads Threshold :%"PRIu64"\n", (uint64_t)le64_to_cpu(plmcfg->dtwin_reads_thresh));
> - printf("\tDTWIN Writes Threshold:%"PRIu64"\n", (uint64_t)le64_to_cpu(plmcfg->dtwin_writes_thresh));
> - printf("\tDTWIN Time Threshold :%"PRIu64"\n", (uint64_t)le64_to_cpu(plmcfg->dtwin_time_thresh));
> + printf("\tDTWIN Reads Threshold :%"PRIu64"\n", le64_to_cpu(plmcfg->dtwin_reads_thresh));
> + printf("\tDTWIN Writes Threshold:%"PRIu64"\n", le64_to_cpu(plmcfg->dtwin_writes_thresh));
> + printf("\tDTWIN Time Threshold :%"PRIu64"\n", le64_to_cpu(plmcfg->dtwin_time_thresh));
> }
>
> void nvme_feature_show_fields(__u32 fid, unsigned int result, unsigned char *buf)
> @@ -2509,8 +2509,8 @@ void json_nvme_resv_report(struct nvme_reservation_status *status, int bytes, __
>
> json_object_add_value_int(rc, "cntlid", le16_to_cpu(status->regctl_ds[i].cntlid));
> json_object_add_value_int(rc, "rcsts", status->regctl_ds[i].rcsts);
> - json_object_add_value_uint(rc, "hostid", (uint64_t)le64_to_cpu(status->regctl_ds[i].hostid));
> - json_object_add_value_uint(rc, "rkey", (uint64_t)le64_to_cpu(status->regctl_ds[i].rkey));
> + json_object_add_value_uint(rc, "hostid", le64_to_cpu(status->regctl_ds[i].hostid));
> + json_object_add_value_uint(rc, "rkey", le64_to_cpu(status->regctl_ds[i].rkey));
>
> json_array_add_value_object(rcs, rc);
> }
> @@ -2529,7 +2529,7 @@ void json_nvme_resv_report(struct nvme_reservation_status *status, int bytes, __
>
> json_object_add_value_int(rc, "cntlid", le16_to_cpu(ext_status->regctl_eds[i].cntlid));
> json_object_add_value_int(rc, "rcsts", ext_status->regctl_eds[i].rcsts);
> - json_object_add_value_uint(rc, "rkey", (uint64_t)le64_to_cpu(ext_status->regctl_eds[i].rkey));
> + json_object_add_value_uint(rc, "rkey", le64_to_cpu(ext_status->regctl_eds[i].rkey));
> for (j = 0; j < 16; j++)
> sprintf(hostid + j * 2, "%02x", ext_status->regctl_eds[i].hostid[j]);
>
> @@ -2717,7 +2717,7 @@ void json_ana_log(struct nvme_ana_rsp_hdr *ana_log, const char *devname)
> "Asynchronous Namespace Access Log for NVMe device:",
> devname);
> json_object_add_value_uint(root, "chgcnt",
> - (uint64_t)le64_to_cpu(hdr->chgcnt));
> + le64_to_cpu(hdr->chgcnt));
> json_object_add_value_uint(root, "ngrps", le16_to_cpu(hdr->ngrps));
>
> desc_list = json_create_array();
> @@ -2779,7 +2779,7 @@ void json_self_test_log(struct nvme_self_test_log *self_test, const char *devnam
> if (self_test->result[i].valid_diagnostic_info & NVME_SELF_TEST_VALID_NSID)
> json_object_add_value_int(valid_attrs, "Namespace Identifier (NSID)", le32_to_cpu(self_test->result[i].nsid));
> if (self_test->result[i].valid_diagnostic_info & NVME_SELF_TEST_VALID_FLBA)
> - json_object_add_value_uint(valid_attrs, "Failing LBA",(uint64_t)le64_to_cpu(self_test->result[i].failing_lba));
> + json_object_add_value_uint(valid_attrs, "Failing LBA",le64_to_cpu(self_test->result[i].failing_lba));
> if (self_test->result[i].valid_diagnostic_info & NVME_SELF_TEST_VALID_SCT)
> json_object_add_value_int(valid_attrs, "Status Code Type",self_test->result[i].status_code_type);
> if(self_test->result[i].valid_diagnostic_info & NVME_SELF_TEST_VALID_SC)
> diff --git a/plugins/intel/intel-nvme.c b/plugins/intel/intel-nvme.c
> index 9aaf36768731..37f2c705c90f 100644
> --- a/plugins/intel/intel-nvme.c
> +++ b/plugins/intel/intel-nvme.c
> @@ -322,14 +322,14 @@ static void show_temp_stats(struct intel_temp_stats *stats)
> {
> printf(" Intel Temperature Statistics\n");
> printf("--------------------------------\n");
> - printf("Current temperature : %"PRIu64"\n", (uint64_t)le64_to_cpu(stats->curr));
> - printf("Last critical overtemp flag : %"PRIu64"\n", (uint64_t)le64_to_cpu(stats->last_overtemp));
> - printf("Life critical overtemp flag : %"PRIu64"\n", (uint64_t)le64_to_cpu(stats->life_overtemp));
> - printf("Highest temperature : %"PRIu64"\n", (uint64_t)le64_to_cpu(stats->highest_temp));
> - printf("Lowest temperature : %"PRIu64"\n", (uint64_t)le64_to_cpu(stats->lowest_temp));
> - printf("Max operating temperature : %"PRIu64"\n", (uint64_t)le64_to_cpu(stats->max_operating_temp));
> - printf("Min operating temperature : %"PRIu64"\n", (uint64_t)le64_to_cpu(stats->min_operating_temp));
> - printf("Estimated offset : %"PRIu64"\n", (uint64_t)le64_to_cpu(stats->est_offset));
> + printf("Current temperature : %"PRIu64"\n", le64_to_cpu(stats->curr));
> + printf("Last critical overtemp flag : %"PRIu64"\n", le64_to_cpu(stats->last_overtemp));
> + printf("Life critical overtemp flag : %"PRIu64"\n", le64_to_cpu(stats->life_overtemp));
> + printf("Highest temperature : %"PRIu64"\n", le64_to_cpu(stats->highest_temp));
> + printf("Lowest temperature : %"PRIu64"\n", le64_to_cpu(stats->lowest_temp));
> + printf("Max operating temperature : %"PRIu64"\n", le64_to_cpu(stats->max_operating_temp));
> + printf("Min operating temperature : %"PRIu64"\n", le64_to_cpu(stats->min_operating_temp));
> + printf("Estimated offset : %"PRIu64"\n", le64_to_cpu(stats->est_offset));
> }
>
> static int get_temp_stats_log(int argc, char **argv, struct command *cmd, struct plugin *plugin)
> diff --git a/plugins/seagate/seagate-nvme.c b/plugins/seagate/seagate-nvme.c
> index 4fa29d950d9c..4b5b0acb9244 100644
> --- a/plugins/seagate/seagate-nvme.c
> +++ b/plugins/seagate/seagate-nvme.c
> @@ -615,35 +615,35 @@ void print_smart_log_CF(vendor_log_page_CF *pLogPageCF)
> printf("%-40s", "Super-cap current temperature");
> currentTemp = pLogPageCF->AttrCF.SuperCapCurrentTemperature;
> /*currentTemp = currentTemp ? currentTemp - 273 : 0;*/
> - printf(" 0x%016"PRIx64"", (uint64_t)le64_to_cpu(currentTemp));
> + printf(" 0x%016"PRIx64"", le64_to_cpu(currentTemp));
> printf("\n");
>
> maxTemp = pLogPageCF->AttrCF.SuperCapMaximumTemperature;
> /*maxTemp = maxTemp ? maxTemp - 273 : 0;*/
> printf("%-40s", "Super-cap maximum temperature");
> - printf(" 0x%016"PRIx64"", (uint64_t)le64_to_cpu(maxTemp));
> + printf(" 0x%016"PRIx64"", le64_to_cpu(maxTemp));
> printf("\n");
>
> printf("%-40s", "Super-cap status");
> - printf(" 0x%016"PRIx64"", (uint64_t)le64_to_cpu(pLogPageCF->AttrCF.SuperCapStatus));
> + printf(" 0x%016"PRIx64"", le64_to_cpu(pLogPageCF->AttrCF.SuperCapStatus));
> printf("\n");
>
> printf("%-40s", "Data units read to DRAM namespace");
> - printf(" 0x%016"PRIx64"%016"PRIx64"", (uint64_t)le64_to_cpu(pLogPageCF->AttrCF.DataUnitsReadToDramNamespace.MS__u64),
> - (uint64_t)le64_to_cpu(pLogPageCF->AttrCF.DataUnitsReadToDramNamespace.LS__u64));
> + printf(" 0x%016"PRIx64"%016"PRIx64"", le64_to_cpu(pLogPageCF->AttrCF.DataUnitsReadToDramNamespace.MS__u64),
> + le64_to_cpu(pLogPageCF->AttrCF.DataUnitsReadToDramNamespace.LS__u64));
> printf("\n");
>
> printf("%-40s", "Data units written to DRAM namespace");
> - printf(" 0x%016"PRIx64"%016"PRIx64"", (uint64_t)le64_to_cpu(pLogPageCF->AttrCF.DataUnitsWrittenToDramNamespace.MS__u64),
> - (uint64_t)le64_to_cpu(pLogPageCF->AttrCF.DataUnitsWrittenToDramNamespace.LS__u64));
> + printf(" 0x%016"PRIx64"%016"PRIx64"", le64_to_cpu(pLogPageCF->AttrCF.DataUnitsWrittenToDramNamespace.MS__u64),
> + le64_to_cpu(pLogPageCF->AttrCF.DataUnitsWrittenToDramNamespace.LS__u64));
> printf("\n");
>
> printf("%-40s", "DRAM correctable error count");
> - printf(" 0x%016"PRIx64"", (uint64_t)le64_to_cpu(pLogPageCF->AttrCF.DramCorrectableErrorCount));
> + printf(" 0x%016"PRIx64"", le64_to_cpu(pLogPageCF->AttrCF.DramCorrectableErrorCount));
> printf("\n");
>
> printf("%-40s", "DRAM uncorrectable error count");
> - printf(" 0x%016"PRIx64"", (uint64_t)le64_to_cpu(pLogPageCF->AttrCF.DramUncorrectableErrorCount));
> + printf(" 0x%016"PRIx64"", le64_to_cpu(pLogPageCF->AttrCF.DramUncorrectableErrorCount));
> printf("\n");
>
> }
> @@ -682,16 +682,16 @@ void json_print_smart_log_CF(struct json_object *root, vendor_log_page_CF *pLogP
> lbaf = json_create_object();
> json_object_add_value_string(lbaf, "attribute_name", "Data units read to DRAM namespace");
> memset(buf, 0, sizeof(buf));
> - sprintf(buf, "0x%016"PRIx64"%016"PRIx64"", (uint64_t)le64_to_cpu(pLogPageCF->AttrCF.DataUnitsReadToDramNamespace.MS__u64),
> - (uint64_t)le64_to_cpu(pLogPageCF->AttrCF.DataUnitsReadToDramNamespace.LS__u64));
> + sprintf(buf, "0x%016"PRIx64"%016"PRIx64"", le64_to_cpu(pLogPageCF->AttrCF.DataUnitsReadToDramNamespace.MS__u64),
> + le64_to_cpu(pLogPageCF->AttrCF.DataUnitsReadToDramNamespace.LS__u64));
> json_object_add_value_string(lbaf, "attribute_value", buf);
> json_array_add_value_object(logPages, lbaf);
>
> lbaf = json_create_object();
> json_object_add_value_string(lbaf, "attribute_name", "Data units written to DRAM namespace");
> memset(buf, 0, sizeof(buf));
> - sprintf(buf, "0x%016"PRIx64"%016"PRIx64"", (uint64_t)le64_to_cpu(pLogPageCF->AttrCF.DataUnitsWrittenToDramNamespace.MS__u64),
> - (uint64_t)le64_to_cpu(pLogPageCF->AttrCF.DataUnitsWrittenToDramNamespace.LS__u64));
> + sprintf(buf, "0x%016"PRIx64"%016"PRIx64"", le64_to_cpu(pLogPageCF->AttrCF.DataUnitsWrittenToDramNamespace.MS__u64),
> + le64_to_cpu(pLogPageCF->AttrCF.DataUnitsWrittenToDramNamespace.LS__u64));
> json_object_add_value_string(lbaf, "attribute_value", buf);
> json_array_add_value_object(logPages, lbaf);
>
> diff --git a/plugins/wdc/wdc-nvme.c b/plugins/wdc/wdc-nvme.c
> index a1cb1ebf766f..a9c86b6eced2 100644
> --- a/plugins/wdc/wdc-nvme.c
> +++ b/plugins/wdc/wdc-nvme.c
> @@ -2125,55 +2125,55 @@ static void wdc_print_log_normal(struct wdc_ssd_perf_stats *perf)
> {
> printf(" C1 Log Page Performance Statistics :- \n");
> printf(" Host Read Commands %20"PRIu64"\n",
> - (uint64_t)le64_to_cpu(perf->hr_cmds));
> + le64_to_cpu(perf->hr_cmds));
> printf(" Host Read Blocks %20"PRIu64"\n",
> - (uint64_t)le64_to_cpu(perf->hr_blks));
> + le64_to_cpu(perf->hr_blks));
> printf(" Average Read Size %20lf\n",
> safe_div_fp((le64_to_cpu(perf->hr_blks)), (le64_to_cpu(perf->hr_cmds))));
> printf(" Host Read Cache Hit Commands %20"PRIu64"\n",
> - (uint64_t)le64_to_cpu(perf->hr_ch_cmds));
> + le64_to_cpu(perf->hr_ch_cmds));
> printf(" Host Read Cache Hit_Percentage %20"PRIu64"%%\n",
> (uint64_t) calc_percent(le64_to_cpu(perf->hr_ch_cmds), le64_to_cpu(perf->hr_cmds)));
> printf(" Host Read Cache Hit Blocks %20"PRIu64"\n",
> - (uint64_t)le64_to_cpu(perf->hr_ch_blks));
> + le64_to_cpu(perf->hr_ch_blks));
> printf(" Average Read Cache Hit Size %20f\n",
> safe_div_fp((le64_to_cpu(perf->hr_ch_blks)), (le64_to_cpu(perf->hr_ch_cmds))));
> printf(" Host Read Commands Stalled %20"PRIu64"\n",
> - (uint64_t)le64_to_cpu(perf->hr_st_cmds));
> + le64_to_cpu(perf->hr_st_cmds));
> printf(" Host Read Commands Stalled Percentage %20"PRIu64"%%\n",
> (uint64_t)calc_percent((le64_to_cpu(perf->hr_st_cmds)), le64_to_cpu(perf->hr_cmds)));
> printf(" Host Write Commands %20"PRIu64"\n",
> - (uint64_t)le64_to_cpu(perf->hw_cmds));
> + le64_to_cpu(perf->hw_cmds));
> printf(" Host Write Blocks %20"PRIu64"\n",
> - (uint64_t)le64_to_cpu(perf->hw_blks));
> + le64_to_cpu(perf->hw_blks));
> printf(" Average Write Size %20f\n",
> safe_div_fp((le64_to_cpu(perf->hw_blks)), (le64_to_cpu(perf->hw_cmds))));
> printf(" Host Write Odd Start Commands %20"PRIu64"\n",
> - (uint64_t)le64_to_cpu(perf->hw_os_cmds));
> + le64_to_cpu(perf->hw_os_cmds));
> printf(" Host Write Odd Start Commands Percentage %20"PRIu64"%%\n",
> (uint64_t)calc_percent((le64_to_cpu(perf->hw_os_cmds)), (le64_to_cpu(perf->hw_cmds))));
> printf(" Host Write Odd End Commands %20"PRIu64"\n",
> - (uint64_t)le64_to_cpu(perf->hw_oe_cmds));
> + le64_to_cpu(perf->hw_oe_cmds));
> printf(" Host Write Odd End Commands Percentage %20"PRIu64"%%\n",
> (uint64_t)calc_percent((le64_to_cpu(perf->hw_oe_cmds)), (le64_to_cpu((perf->hw_cmds)))));
> printf(" Host Write Commands Stalled %20"PRIu64"\n",
> - (uint64_t)le64_to_cpu(perf->hw_st_cmds));
> + le64_to_cpu(perf->hw_st_cmds));
> printf(" Host Write Commands Stalled Percentage %20"PRIu64"%%\n",
> (uint64_t)calc_percent((le64_to_cpu(perf->hw_st_cmds)), (le64_to_cpu(perf->hw_cmds))));
> printf(" NAND Read Commands %20"PRIu64"\n",
> - (uint64_t)le64_to_cpu(perf->nr_cmds));
> + le64_to_cpu(perf->nr_cmds));
> printf(" NAND Read Blocks Commands %20"PRIu64"\n",
> - (uint64_t)le64_to_cpu(perf->nr_blks));
> + le64_to_cpu(perf->nr_blks));
> printf(" Average NAND Read Size %20f\n",
> safe_div_fp((le64_to_cpu(perf->nr_blks)), (le64_to_cpu((perf->nr_cmds)))));
> printf(" Nand Write Commands %20"PRIu64"\n",
> - (uint64_t)le64_to_cpu(perf->nw_cmds));
> + le64_to_cpu(perf->nw_cmds));
> printf(" NAND Write Blocks %20"PRIu64"\n",
> - (uint64_t)le64_to_cpu(perf->nw_blks));
> + le64_to_cpu(perf->nw_blks));
> printf(" Average NAND Write Size %20f\n",
> safe_div_fp((le64_to_cpu(perf->nw_blks)), (le64_to_cpu(perf->nw_cmds))));
> printf(" NAND Read Before Write %20"PRIu64"\n",
> - (uint64_t)le64_to_cpu(perf->nrbw));
> + le64_to_cpu(perf->nrbw));
> }
>
> static void wdc_print_log_json(struct wdc_ssd_perf_stats *perf)
> @@ -2186,49 +2186,49 @@ static void wdc_print_log_json(struct wdc_ssd_perf_stats *perf)
> json_object_add_value_int(root, "Average Read Size",
> safe_div_fp((le64_to_cpu(perf->hr_blks)), (le64_to_cpu(perf->hr_cmds))));
> json_object_add_value_int(root, "Host Read Cache Hit Commands",
> - (uint64_t)le64_to_cpu(perf->hr_ch_cmds));
> + le64_to_cpu(perf->hr_ch_cmds));
> json_object_add_value_int(root, "Host Read Cache Hit Percentage",
> (uint64_t) calc_percent(le64_to_cpu(perf->hr_ch_cmds), le64_to_cpu(perf->hr_cmds)));
> json_object_add_value_int(root, "Host Read Cache Hit Blocks",
> - (uint64_t)le64_to_cpu(perf->hr_ch_blks));
> + le64_to_cpu(perf->hr_ch_blks));
> json_object_add_value_int(root, "Average Read Cache Hit Size",
> safe_div_fp((le64_to_cpu(perf->hr_ch_blks)), (le64_to_cpu(perf->hr_ch_cmds))));
> json_object_add_value_int(root, "Host Read Commands Stalled",
> - (uint64_t)le64_to_cpu(perf->hr_st_cmds));
> + le64_to_cpu(perf->hr_st_cmds));
> json_object_add_value_int(root, "Host Read Commands Stalled Percentage",
> (uint64_t)calc_percent((le64_to_cpu(perf->hr_st_cmds)), le64_to_cpu(perf->hr_cmds)));
> json_object_add_value_int(root, "Host Write Commands",
> - (uint64_t)le64_to_cpu(perf->hw_cmds));
> + le64_to_cpu(perf->hw_cmds));
> json_object_add_value_int(root, "Host Write Blocks",
> - (uint64_t)le64_to_cpu(perf->hw_blks));
> + le64_to_cpu(perf->hw_blks));
> json_object_add_value_int(root, "Average Write Size",
> safe_div_fp((le64_to_cpu(perf->hw_blks)), (le64_to_cpu(perf->hw_cmds))));
> json_object_add_value_int(root, "Host Write Odd Start Commands",
> - (uint64_t)le64_to_cpu(perf->hw_os_cmds));
> + le64_to_cpu(perf->hw_os_cmds));
> json_object_add_value_int(root, "Host Write Odd Start Commands Percentage",
> (uint64_t)calc_percent((le64_to_cpu(perf->hw_os_cmds)), (le64_to_cpu(perf->hw_cmds))));
> json_object_add_value_int(root, "Host Write Odd End Commands",
> - (uint64_t)le64_to_cpu(perf->hw_oe_cmds));
> + le64_to_cpu(perf->hw_oe_cmds));
> json_object_add_value_int(root, "Host Write Odd End Commands Percentage",
> (uint64_t)calc_percent((le64_to_cpu(perf->hw_oe_cmds)), (le64_to_cpu((perf->hw_cmds)))));
> json_object_add_value_int(root, "Host Write Commands Stalled",
> - (uint64_t)le64_to_cpu(perf->hw_st_cmds));
> + le64_to_cpu(perf->hw_st_cmds));
> json_object_add_value_int(root, "Host Write Commands Stalled Percentage",
> (uint64_t)calc_percent((le64_to_cpu(perf->hw_st_cmds)), (le64_to_cpu(perf->hw_cmds))));
> json_object_add_value_int(root, "NAND Read Commands",
> - (uint64_t)le64_to_cpu(perf->nr_cmds));
> + le64_to_cpu(perf->nr_cmds));
> json_object_add_value_int(root, "NAND Read Blocks Commands",
> - (uint64_t)le64_to_cpu(perf->nr_blks));
> + le64_to_cpu(perf->nr_blks));
> json_object_add_value_int(root, "Average NAND Read Size",
> safe_div_fp((le64_to_cpu(perf->nr_blks)), (le64_to_cpu((perf->nr_cmds)))));
> json_object_add_value_int(root, "Nand Write Commands",
> - (uint64_t)le64_to_cpu(perf->nw_cmds));
> + le64_to_cpu(perf->nw_cmds));
> json_object_add_value_int(root, "NAND Write Blocks",
> - (uint64_t)le64_to_cpu(perf->nw_blks));
> + le64_to_cpu(perf->nw_blks));
> json_object_add_value_int(root, "Average NAND Write Size",
> safe_div_fp((le64_to_cpu(perf->nw_blks)), (le64_to_cpu(perf->nw_cmds))));
> json_object_add_value_int(root, "NAND Read Before Written",
> - (uint64_t)le64_to_cpu(perf->nrbw));
> + le64_to_cpu(perf->nrbw));
> json_print_object(root, NULL);
> printf("\n");
> json_free_object(root);
> @@ -2257,9 +2257,9 @@ static void wdc_print_ca_log_normal(struct wdc_ssd_ca_perf_stats *perf)
>
> printf(" CA Log Page Performance Statistics :- \n");
> printf(" NAND Bytes Written %20"PRIu64 "%20"PRIu64"\n",
> - (uint64_t)le64_to_cpu(perf->nand_bytes_wr_hi), (uint64_t)le64_to_cpu(perf->nand_bytes_wr_lo));
> + le64_to_cpu(perf->nand_bytes_wr_hi), le64_to_cpu(perf->nand_bytes_wr_lo));
> printf(" NAND Bytes Read %20"PRIu64 "%20"PRIu64"\n",
> - (uint64_t)le64_to_cpu(perf->nand_bytes_rd_hi), (uint64_t)le64_to_cpu(perf->nand_bytes_rd_lo));
> + le64_to_cpu(perf->nand_bytes_rd_hi), le64_to_cpu(perf->nand_bytes_rd_lo));
>
> converted = le64_to_cpu(perf->nand_bad_block);
> printf(" NAND Bad Block Count (Normalized) %20"PRIu64"\n",
> @@ -2268,9 +2268,9 @@ static void wdc_print_ca_log_normal(struct wdc_ssd_ca_perf_stats *perf)
> converted >> 16);
>
> printf(" Uncorrectable Read Count %20"PRIu64"\n",
> - (uint64_t)le64_to_cpu(perf->uncorr_read_count));
> + le64_to_cpu(perf->uncorr_read_count));
> printf(" Soft ECC Error Count %20"PRIu64"\n",
> - (uint64_t)le64_to_cpu(perf->ecc_error_count));
> + le64_to_cpu(perf->ecc_error_count));
> printf(" SSD End to End Detected Correction Count %20"PRIu32"\n",
> (uint32_t)le32_to_cpu(perf->ssd_detect_count));
> printf(" SSD End to End Corrected Correction Count %20"PRIu32"\n",
> @@ -2282,7 +2282,7 @@ static void wdc_print_ca_log_normal(struct wdc_ssd_ca_perf_stats *perf)
> printf(" User Data Erase Counts Min %20"PRIu32"\n",
> (uint32_t)le32_to_cpu(perf->data_erase_min));
> printf(" Refresh Count %20"PRIu64"\n",
> - (uint64_t)le64_to_cpu(perf->refresh_count));
> + le64_to_cpu(perf->refresh_count));
>
> converted = le64_to_cpu(perf->program_fail);
> printf(" Program Fail Count (Normalized) %20"PRIu64"\n",
> @@ -2307,7 +2307,7 @@ static void wdc_print_ca_log_normal(struct wdc_ssd_ca_perf_stats *perf)
> printf(" Thermal Throttling Count %20"PRIu8"\n",
> perf->thermal_throttle_count);
> printf(" PCIe Correctable Error Count %20"PRIu64"\n",
> - (uint64_t)le64_to_cpu(perf->pcie_corr_error));
> + le64_to_cpu(perf->pcie_corr_error));
> printf(" Incomplete Shutdown Count %20"PRIu32"\n",
> (uint32_t)le32_to_cpu(perf->incomplete_shutdown_count));
> printf(" Percent Free Blocks %20"PRIu32"%%\n",
> @@ -2411,13 +2411,13 @@ static void wdc_print_d0_log_normal(struct wdc_ssd_d0_smart_log *perf)
> printf(" Lifetime Read Disturb Reallocation Events %20"PRIu32"\n",
> (uint32_t)le32_to_cpu(perf->lifetime_read_disturb_realloc_events));
> printf(" Lifetime NAND Writes %20"PRIu64"\n",
> - (uint64_t)le64_to_cpu(perf->lifetime_nand_writes));
> + le64_to_cpu(perf->lifetime_nand_writes));
> printf(" Capacitor Health %20"PRIu32"%%\n",
> (uint32_t)le32_to_cpu(perf->capacitor_health));
> printf(" Lifetime User Writes %20"PRIu64"\n",
> - (uint64_t)le64_to_cpu(perf->lifetime_user_writes));
> + le64_to_cpu(perf->lifetime_user_writes));
> printf(" Lifetime User Reads %20"PRIu64"\n",
> - (uint64_t)le64_to_cpu(perf->lifetime_user_reads));
> + le64_to_cpu(perf->lifetime_user_reads));
> printf(" Lifetime Thermal Throttle Activations %20"PRIu32"\n",
> (uint32_t)le32_to_cpu(perf->lifetime_thermal_throttle_act));
> printf(" Percentage of P/E Cycles Remaining %20"PRIu32"%%\n",
> @@ -3726,7 +3726,7 @@ static void wdc_print_nand_stats_normal(struct wdc_nand_stats *data)
> printf(" Bad Block Count %"PRIu32"\n",
> (uint32_t)le32_to_cpu(data->bad_block_count));
> printf(" NAND XOR/RAID Recovery Trigger Events %"PRIu64"\n",
> - (uint64_t)le64_to_cpu(data->nand_rec_trigger_event));
> + le64_to_cpu(data->nand_rec_trigger_event));
> }
>
> static void wdc_print_nand_stats_json(struct wdc_nand_stats *data)
> --
> 2.22.0.rc3
>
>
> _______________________________________________
> Linux-nvme mailing list
> Linux-nvme at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-nvme
next prev parent reply other threads:[~2019-06-24 10:00 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-06-19 17:36 [PATCH nvme-cli 00/13] Static checker fixes and NVMe 1.4 support Bart Van Assche
2019-06-19 17:36 ` [PATCH nvme-cli 01/13] Remove superfluous casts Bart Van Assche
2019-06-24 10:00 ` Mikhail Skorzhinskii [this message]
2019-06-24 10:49 ` Minwoo Im
2019-06-24 13:55 ` Bart Van Assche
2019-06-24 18:46 ` Minwoo Im
2019-06-24 19:49 ` Bart Van Assche
2019-06-24 20:51 ` Mikhail Skorzhinskii
2019-06-19 17:36 ` [PATCH nvme-cli 02/13] Use NULL instead of 0 where a pointer is expected Bart Van Assche
2019-06-19 17:36 ` [PATCH nvme-cli 03/13] huawei: Declare local functions static Bart Van Assche
2019-06-19 17:36 ` [PATCH nvme-cli 04/13] seagate: " Bart Van Assche
2019-06-19 17:36 ` [PATCH nvme-cli 05/13] virtium: Declare local symbols static Bart Van Assche
2019-06-19 17:36 ` [PATCH nvme-cli 06/13] lightnvm: Fix an endianness issue Bart Van Assche
2019-06-19 17:36 ` [PATCH nvme-cli 07/13] virtium: " Bart Van Assche
2019-06-19 17:36 ` [PATCH nvme-cli 08/13] wdc: Fix endianness bugs Bart Van Assche
2019-06-19 17:36 ` [PATCH nvme-cli 09/13] Avoid using arrays with a variable length Bart Van Assche
2019-06-19 17:36 ` [PATCH nvme-cli 10/13] nvme-cli: Rework the code for getting and setting NVMf properties Bart Van Assche
2019-06-19 17:36 ` [PATCH nvme-cli 11/13] nvme-cli: Skip properties that are not supported Bart Van Assche
2019-06-19 17:37 ` [PATCH nvme-cli 12/13] Introduce NVMe 1.4 Identify Namespace fields in struct nvme_id_ns Bart Van Assche
2019-06-19 17:37 ` [PATCH nvme-cli 13/13] nvme-cli: Report the NVMe 1.4 NPWG, NPWA, NPDG, NPDA and NOWS fields Bart Van Assche
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87tvcfnw05.fsf@solarflare.com \
--to=mskorzhinskiy@solarflare.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.