The v1.6 release of the NVDIMM_FAMILY_INTEL DSM specification [1]
updates the format of the 'SMART Threshold Command' payload and
introduces the 'SMART Set Threshold Command'. Given that the new SMART
Threshold format is broken with respect to the initial / generic
ND_IOCTL_SMART_THRESHOLD format the generic SMART commands are now
deprecated. The NVDIMM_FAMILY_INTEL SMART support is updated to use
the ND_IOCTL_CALL path similar to how libndctl abstracts the per vendor
differences of the NVDIMM_FAMILY_{HPE1,MSFT} SMART implementations.

Included in this overhaul is better infrastructure for supporting the
rest of the v1.6 DSMs that need to go through the ND_IOCTL_CALL
interface.

Note, the v1.6 specification also includes a 'SMART Error Injection'
facility, but that enabling is deferred for a later update and will be
integrated with the 'ndctl inject-error' command.

[1]: http://pmem.io/documents/NVDIMM_DSM_Interface-V1.6.pdf

---

Dan Williams (16):
      libndctl: rename dimm dsm_mask to cmd_mask
      libndctl: add nfit_dsm_mask as a private dimm property
      ndctl, smart: rename 'temperature' helpers to 'media_temperature'
      ndctl, intel: switch to ND_CMD_CALL passthrough for SMART commands
      ndctl: remove support for compiling against the kernel ndctl.h header
      ndctl, test: emit smart field names
      ndctl, smart: cleanup smart_cmd_op() macro
      ndctl, test: reset all nfit_test data for each test/libndctl run
      ndctl, region: cleanup error message
      ndctl: support set smart alarm/threshold
      ndctl: refactor 'smart_ops' into generic 'dimm_ops'
      ndctl, debug: improve do_cmd output for ND_CMD_CALL
      ndctl, list: teach the list command about the 'fsdax' and 'devdax' modes
      ndctl, smart: move smart temperature parsing to a library routine
      ndctl, test: trigger notifications
      ndctl, test: listen for smart notifications


 Documentation/ndctl/ndctl-list.txt |    2 
 configure.ac                       |  120 -------------
 ndctl.spec.in                      |    4 
 ndctl/Makefile.am                  |    5 -
 ndctl/check.c                      |    7 -
 ndctl/inject-error.c               |    6 -
 ndctl/lib/Makefile.am              |   22 +-
 ndctl/lib/ars.c                    |    9 -
 ndctl/lib/hpe1.c                   |   24 ++-
 ndctl/lib/intel.c                  |  334 ++++++++++++++++++++++++++++++++++++
 ndctl/lib/intel.h                  |   82 +++++++++
 ndctl/lib/libndctl.c               |  114 +++++++-----
 ndctl/lib/libndctl.sym             |   12 +
 ndctl/lib/msft.c                   |   11 +
 ndctl/lib/private.h                |   80 ++++-----
 ndctl/lib/smart.c                  |  206 ++++++----------------
 ndctl/libndctl.h                   |  190 +++++---------------
 ndctl/list.c                       |    9 +
 ndctl/namespace.c                  |    9 -
 ndctl/ndctl.h                      |   59 ------
 ndctl/region.c                     |    2 
 ndctl/util/json-smart.c            |   24 ---
 test.h                             |    3 
 test/Makefile.am                   |    7 +
 test/blk_namespaces.c              |    9 -
 test/core.c                        |   25 +++
 test/daxdev-errors.c               |    6 -
 test/dpa-alloc.c                   |    9 -
 test/dsm-fail.c                    |    6 -
 test/libndctl.c                    |  118 ++++++++-----
 test/multi-pmem.c                  |    7 -
 test/parent-uuid.c                 |    2 
 test/pmem_namespaces.c             |    7 -
 test/smart-listen.c                |  109 ++++++++++++
 test/smart-notify.c                |  220 ++++++++++++++++++++++++
 util/json.c                        |    5 -
 util/json.h                        |    8 -
 37 files changed, 1130 insertions(+), 742 deletions(-)
 create mode 100644 ndctl/lib/intel.c
 create mode 100644 ndctl/lib/intel.h
 rename ndctl/{libndctl.h.in => libndctl.h} (89%)
 create mode 100644 test/smart-listen.c
 create mode 100644 test/smart-notify.c
_______________________________________________
Linux-nvdimm mailing list
Linux-nvdimm@lists.01.org
https://lists.01.org/mailman/listinfo/linux-nvdimm

Reply via email to