All of lore.kernel.org
 help / color / mirror / Atom feed
From: Dan Williams <dan.j.williams@intel.com>
To: Linda Knippers <linda.knippers@hpe.com>
Cc: "linux-nvdimm@lists.01.org" <linux-nvdimm@lists.01.org>
Subject: Re: [RFC PATCH] Report the Health Status Detail for the HPE1 DSM family
Date: Wed, 5 Apr 2017 13:53:39 -0700	[thread overview]
Message-ID: <CAPcyv4gBBtfekmmgjn-CM-2UeD5-4fHXq2oBqx07WP9_dG_sbw@mail.gmail.com> (raw)
In-Reply-To: <1490989421-20872-1-git-send-email-linda.knippers@hpe.com>

On Fri, Mar 31, 2017 at 12:43 PM, Linda Knippers <linda.knippers@hpe.com> wrote:
> Dan,
> This is an RFC because I'd like some initial feedback on the
> approach.  I think this is what you had in mind from your last
> exchanges with Brian but I wanted to check a few things before
> going too far.
>
> 1) Do we want to export a library function for what could be a long
> list of DSM-family-specific health information?  I think there
> could be some common information between the HPE1 and MSFT DSM
> but much will not be common.

Even for non-common information I want libndctl to hide the details
about which DIMM families support which fields. Just extend the
validity flags concept to make unsupported / family specific health
data appear as just an invalid field to the library interface if the
DIMM does not support it.

> 2) If we do export the functions, would we need to also export
> the ndctl-hpe1.h include file or consolidate the information into
> an already exported file?

I want to avoid libndctl ever exporting vendor-specific details. There
may be json keys that only show up on one vendor's DIMMs, but that
should be indistinguishable from a SMART payload that happens to clear
a validity bit.

> 3) Do you want json-smart.c to keep growing or should new smart
> functions provide their own matching json functions?

json-smart.c should understand the superset of all possible health
fields, i.e. the union of all vendor fields that can possibly be
returned. If this ever gets unwieldy it means we need to redouble
standardization efforts.

> 4) The code in json-smart.c with a macro was a quick prototype
> but if you have feedback on the json parts, that would be appreciated.
> Right now the detail is reported as a string if all is well and an
> array if there are errors.  I'm not sure about that or whether
> the strings should have spaces.

I think we should have all fields searchable as json keys in lowercase
with underscores. Lets handle these flags similar to the existing
boolean alarm_temperature and alarm_spares flags, but with a small
change. Since these flags are reporting some dimm-type-specific
details I think we should only add them to the json when they are
true. This way we won't have confusing entries like a
'"energy_source_error":false' line for non-energy-source-backed dimms.
I'll go back and fix up 'alarm_spares' and 'alarm_temperature' to be
hidden on DIMMs where they are always false.

Hmm, it seems like we need a "supported" vs "valid" distinction. Where
supported but invalid shows flags in the 'false' state, but
"unsupported" hides flags that are always going to be 'false'.
_______________________________________________
Linux-nvdimm mailing list
Linux-nvdimm@lists.01.org
https://lists.01.org/mailman/listinfo/linux-nvdimm

  reply	other threads:[~2017-04-05 20:53 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-03-31 19:43 [RFC PATCH] Report the Health Status Detail for the HPE1 DSM family Linda Knippers
2017-04-05 20:53 ` Dan Williams [this message]
2017-04-11 20:45   ` Linda Knippers

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=CAPcyv4gBBtfekmmgjn-CM-2UeD5-4fHXq2oBqx07WP9_dG_sbw@mail.gmail.com \
    --to=dan.j.williams@intel.com \
    --cc=linda.knippers@hpe.com \
    --cc=linux-nvdimm@lists.01.org \
    /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.