v2:
 patch 1:
   - use poll() instead of a sleep loop when waiting for a scrub. (Dan)
 patch 2 (new):
   - move the acpi nfit specific routines into generic wrappers exported
     by the library. (Dan)
 patch 3:
   - rename 'clear' to 'uninject' use 'block' instead of 'sector' (Dan)
   - cleanup the manpage to remove ACPI/NFIT references.
 patch 4:
   - Add the actual inject-error unit test instead of just test
     boilerplate


These patches add a new command to ndctl for error injection. They are
implemented such that the interface provided to a user is consistent
with the kernel - i.e. all media errors are expected/displayed in terms
of 512 byte sectors. The underlying ACPI DSMs need and provide byte
relative offsets/lengths, but these are converted to 512B sectors for
consistency.

These also update unit tests to use the new error injection commands,
and add two new unit tests - first, to test the error injection commands
themselves, and second, to test BTT error clearing.


Vishal Verma (6):
  libndctl: add APIs to get scrub count and to wait for a scrub
  libndctl: add error injection related interfaces
  ndctl: add an inject-error command
  ndctl/test: add a new unit test for inject-error
  ndctl/test: update existing unit tests to use inject-error
  ndctl/test: add a new unit test for BTT error clearing

 Documentation/ndctl/Makefile.am            |   1 +
 Documentation/ndctl/ndctl-inject-error.txt | 108 ++++++++
 Documentation/ndctl/ndctl.txt              |   1 +
 builtin.h                                  |   1 +
 contrib/ndctl                              |   5 +-
 ndctl/Makefile.am                          |   3 +-
 ndctl/inject-error.c                       | 373 +++++++++++++++++++++++++++
 ndctl/lib/Makefile.am                      |   1 +
 ndctl/lib/inject.c                         | 391 +++++++++++++++++++++++++++++
 ndctl/lib/libndctl.c                       | 147 +++++++----
 ndctl/lib/libndctl.sym                     |  11 +
 ndctl/lib/nfit.c                           |  89 +++++++
 ndctl/lib/private.h                        |  54 ++++
 ndctl/libndctl-nfit.h                      |  10 +
 ndctl/libndctl.h.in                        |  25 ++
 ndctl/ndctl.c                              |   1 +
 test/Makefile.am                           |   4 +-
 test/btt-errors.sh                         | 149 +++++++++++
 test/clear.sh                              |   5 +-
 test/dax-errors.sh                         |   5 +-
 test/daxdev-errors.sh                      |  17 +-
 test/inject-error.sh                       | 120 +++++++++
 util/json.c                                |  26 ++
 util/json.h                                |   3 +
 util/list.h                                |  50 ++++
 util/size.h                                |   1 +
 26 files changed, 1551 insertions(+), 50 deletions(-)
 create mode 100644 Documentation/ndctl/ndctl-inject-error.txt
 create mode 100644 ndctl/inject-error.c
 create mode 100644 ndctl/lib/inject.c
 create mode 100755 test/btt-errors.sh
 create mode 100755 test/inject-error.sh
 create mode 100644 util/list.h

-- 
2.9.5

_______________________________________________
Linux-nvdimm mailing list
Linux-nvdimm@lists.01.org
https://lists.01.org/mailman/listinfo/linux-nvdimm

Reply via email to