From: Vaibhav Jain <vaibhav@linux.ibm.com> To: Ira Weiny <ira.weiny@intel.com> Cc: linuxppc-dev@lists.ozlabs.org, linux-nvdimm@lists.01.org, "Aneesh Kumar K . V" <aneesh.kumar@linux.ibm.com>, Michael Ellerman <mpe@ellerman.id.au> Subject: Re: [PATCH 2/2] powerpc/papr_scm: Add support for fetching nvdimm 'fuel-gauge' metric Date: Wed, 24 Jun 2020 19:33:03 +0530 [thread overview] Message-ID: <87d05oo92g.fsf@linux.ibm.com> (raw) In-Reply-To: <20200623191410.GH3910394@iweiny-DESK2.sc.intel.com> Thanks for reviewing this patch Ira, My responses below: Ira Weiny <ira.weiny@intel.com> writes: [snip] >> +static int papr_pdsm_fuel_gauge(struct papr_scm_priv *p, >> + union nd_pdsm_payload *payload) >> +{ >> + int rc, size; >> + struct papr_scm_perf_stat *stat; >> + struct papr_scm_perf_stats *stats; >> + >> + /* Silently fail if fetching performance metrics isn't supported */ >> + if (!p->len_stat_buffer) >> + return 0; >> + >> + /* Allocate request buffer enough to hold single performance stat */ >> + size = sizeof(struct papr_scm_perf_stats) + >> + sizeof(struct papr_scm_perf_stat); >> + >> + stats = kzalloc(size, GFP_KERNEL); >> + if (!stats) >> + return -ENOMEM; >> + >> + stat = &stats->scm_statistic[0]; >> + memcpy(&stat->statistic_id, "MemLife ", sizeof(stat->statistic_id)); >> + stat->statistic_value = 0; >> + >> + /* Fetch the fuel gauge and populate it in payload */ >> + rc = drc_pmem_query_stats(p, stats, size, 1, NULL); >> + if (!rc) { > > Always best to except the error case... > > if (rc) { > ... print debuging from below... > goto free_stats; > } > Sure, I don't feel strongly about it. Will update this in v2. >> + dev_dbg(&p->pdev->dev, >> + "Fetched fuel-gauge %llu", stat->statistic_value); >> + payload->health.extension_flags |= >> + PDSM_DIMM_HEALTH_RUN_GAUGE_VALID; >> + payload->health.dimm_fuel_gauge = stat->statistic_value; >> + >> + rc = sizeof(struct nd_papr_pdsm_health); >> + } >> + > > free_stats: > >> + kfree(stats); >> + return rc; >> +} >> + >> /* Fetch the DIMM health info and populate it in provided package. */ >> static int papr_pdsm_health(struct papr_scm_priv *p, >> union nd_pdsm_payload *payload) >> @@ -546,6 +585,14 @@ static int papr_pdsm_health(struct papr_scm_priv *p, >> >> /* struct populated hence can release the mutex now */ >> mutex_unlock(&p->health_mutex); >> + >> + /* Populate the fuel gauge meter in the payload */ >> + rc = papr_pdsm_fuel_gauge(p, payload); >> + >> + /* Error fetching fuel gauge is not fatal */ >> + if (rc < 0) >> + dev_dbg(&p->pdev->dev, "Err(%d) fetching fuel gauge\n", rc); > > Why even return an error? Just have *_fuel_guage() the print the debugging and > return void. > papr_pdsm_fuel_gauge uses the same signature as other PDSM service functions as described in pdsm_cmd_desc.service callback. Hence designed the function signature as such. >> + >> rc = sizeof(struct nd_papr_pdsm_health); > > You just override rc here anyway... > > Ira > >> >> out: >> -- >> 2.26.2 >> _______________________________________________ >> Linux-nvdimm mailing list -- linux-nvdimm@lists.01.org >> To unsubscribe send an email to linux-nvdimm-leave@lists.01.org -- Cheers ~ Vaibhav _______________________________________________ Linux-nvdimm mailing list -- linux-nvdimm@lists.01.org To unsubscribe send an email to linux-nvdimm-leave@lists.01.org
WARNING: multiple messages have this Message-ID (diff)
From: Vaibhav Jain <vaibhav@linux.ibm.com> To: Ira Weiny <ira.weiny@intel.com> Cc: "Aneesh Kumar K . V" <aneesh.kumar@linux.ibm.com>, linuxppc-dev@lists.ozlabs.org, linux-nvdimm@lists.01.org Subject: Re: [PATCH 2/2] powerpc/papr_scm: Add support for fetching nvdimm 'fuel-gauge' metric Date: Wed, 24 Jun 2020 19:33:03 +0530 [thread overview] Message-ID: <87d05oo92g.fsf@linux.ibm.com> (raw) In-Reply-To: <20200623191410.GH3910394@iweiny-DESK2.sc.intel.com> Thanks for reviewing this patch Ira, My responses below: Ira Weiny <ira.weiny@intel.com> writes: [snip] >> +static int papr_pdsm_fuel_gauge(struct papr_scm_priv *p, >> + union nd_pdsm_payload *payload) >> +{ >> + int rc, size; >> + struct papr_scm_perf_stat *stat; >> + struct papr_scm_perf_stats *stats; >> + >> + /* Silently fail if fetching performance metrics isn't supported */ >> + if (!p->len_stat_buffer) >> + return 0; >> + >> + /* Allocate request buffer enough to hold single performance stat */ >> + size = sizeof(struct papr_scm_perf_stats) + >> + sizeof(struct papr_scm_perf_stat); >> + >> + stats = kzalloc(size, GFP_KERNEL); >> + if (!stats) >> + return -ENOMEM; >> + >> + stat = &stats->scm_statistic[0]; >> + memcpy(&stat->statistic_id, "MemLife ", sizeof(stat->statistic_id)); >> + stat->statistic_value = 0; >> + >> + /* Fetch the fuel gauge and populate it in payload */ >> + rc = drc_pmem_query_stats(p, stats, size, 1, NULL); >> + if (!rc) { > > Always best to except the error case... > > if (rc) { > ... print debuging from below... > goto free_stats; > } > Sure, I don't feel strongly about it. Will update this in v2. >> + dev_dbg(&p->pdev->dev, >> + "Fetched fuel-gauge %llu", stat->statistic_value); >> + payload->health.extension_flags |= >> + PDSM_DIMM_HEALTH_RUN_GAUGE_VALID; >> + payload->health.dimm_fuel_gauge = stat->statistic_value; >> + >> + rc = sizeof(struct nd_papr_pdsm_health); >> + } >> + > > free_stats: > >> + kfree(stats); >> + return rc; >> +} >> + >> /* Fetch the DIMM health info and populate it in provided package. */ >> static int papr_pdsm_health(struct papr_scm_priv *p, >> union nd_pdsm_payload *payload) >> @@ -546,6 +585,14 @@ static int papr_pdsm_health(struct papr_scm_priv *p, >> >> /* struct populated hence can release the mutex now */ >> mutex_unlock(&p->health_mutex); >> + >> + /* Populate the fuel gauge meter in the payload */ >> + rc = papr_pdsm_fuel_gauge(p, payload); >> + >> + /* Error fetching fuel gauge is not fatal */ >> + if (rc < 0) >> + dev_dbg(&p->pdev->dev, "Err(%d) fetching fuel gauge\n", rc); > > Why even return an error? Just have *_fuel_guage() the print the debugging and > return void. > papr_pdsm_fuel_gauge uses the same signature as other PDSM service functions as described in pdsm_cmd_desc.service callback. Hence designed the function signature as such. >> + >> rc = sizeof(struct nd_papr_pdsm_health); > > You just override rc here anyway... > > Ira > >> >> out: >> -- >> 2.26.2 >> _______________________________________________ >> Linux-nvdimm mailing list -- linux-nvdimm@lists.01.org >> To unsubscribe send an email to linux-nvdimm-leave@lists.01.org -- Cheers ~ Vaibhav
next prev parent reply other threads:[~2020-06-24 14:03 UTC|newest] Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top 2020-06-22 4:24 [PATCH 0/2] powerpc/papr_scm: add support for reporting NVDIMM 'life_used_percentage' metric Vaibhav Jain 2020-06-22 4:24 ` Vaibhav Jain 2020-06-22 4:24 ` [PATCH 1/2] powerpc/papr_scm: Fetch nvdimm performance stats from PHYP Vaibhav Jain 2020-06-22 4:24 ` Vaibhav Jain 2020-06-23 5:42 ` Aneesh Kumar K.V 2020-06-23 5:42 ` Aneesh Kumar K.V 2020-06-23 5:52 ` Aneesh Kumar K.V 2020-06-23 5:52 ` Aneesh Kumar K.V 2020-06-23 19:02 ` Ira Weiny 2020-06-23 19:02 ` Ira Weiny 2020-06-24 14:58 ` Vaibhav Jain 2020-06-24 14:58 ` Vaibhav Jain 2020-06-24 17:33 ` Ira Weiny 2020-06-24 17:33 ` Ira Weiny 2020-06-22 4:24 ` [PATCH 2/2] powerpc/papr_scm: Add support for fetching nvdimm 'fuel-gauge' metric Vaibhav Jain 2020-06-22 4:24 ` Vaibhav Jain 2020-06-23 19:14 ` Ira Weiny 2020-06-23 19:14 ` Ira Weiny 2020-06-24 14:03 ` Vaibhav Jain [this message] 2020-06-24 14:03 ` Vaibhav Jain
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=87d05oo92g.fsf@linux.ibm.com \ --to=vaibhav@linux.ibm.com \ --cc=aneesh.kumar@linux.ibm.com \ --cc=ira.weiny@intel.com \ --cc=linux-nvdimm@lists.01.org \ --cc=linuxppc-dev@lists.ozlabs.org \ --cc=mpe@ellerman.id.au \ /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: linkBe 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.