libnvdimm: control (ioctl) messages for nvdimm_bus and nvdimm devices
Most discovery/configuration of the nvdimm-subsystem is done via sysfs attributes. However, some nvdimm_bus instances, particularly the ACPI.NFIT bus, define a small set of messages that can be passed to the platform. For convenience we derive the initial libnvdimm-ioctl command formats directly from the NFIT DSM Interface Example formats. ND_CMD_SMART: media health and diagnostics ND_CMD_GET_CONFIG_SIZE: size of the label space ND_CMD_GET_CONFIG_DATA: read label space ND_CMD_SET_CONFIG_DATA: write label space ND_CMD_VENDOR: vendor-specific command passthrough ND_CMD_ARS_CAP: report address-range-scrubbing capabilities ND_CMD_ARS_START: initiate scrubbing ND_CMD_ARS_STATUS: report on scrubbing state ND_CMD_SMART_THRESHOLD: configure alarm thresholds for smart events If a platform later defines different commands than this set it is straightforward to extend support to those formats. Most of the commands target a specific dimm. However, the address-range-scrubbing commands target the bus. The 'commands' attribute in sysfs of an nvdimm_bus, or nvdimm, enumerate the supported commands for that object. Cc: <linux-acpi@vger.kernel.org> Cc: Robert Moore <robert.moore@intel.com> Cc: Rafael J. Wysocki <rafael.j.wysocki@intel.com> Reported-by:Nicholas Moulin <nicholas.w.moulin@linux.intel.com> Acked-by:
Christoph Hellwig <hch@lst.de> Signed-off-by:
Dan Williams <dan.j.williams@intel.com>
Showing
- drivers/acpi/Kconfig 12 additions, 0 deletionsdrivers/acpi/Kconfig
- drivers/acpi/nfit.c 214 additions, 2 deletionsdrivers/acpi/nfit.c
- drivers/acpi/nfit.h 3 additions, 0 deletionsdrivers/acpi/nfit.h
- drivers/nvdimm/bus.c 322 additions, 4 deletionsdrivers/nvdimm/bus.c
- drivers/nvdimm/core.c 16 additions, 0 deletionsdrivers/nvdimm/core.c
- drivers/nvdimm/dimm_devs.c 35 additions, 3 deletionsdrivers/nvdimm/dimm_devs.c
- drivers/nvdimm/nd-core.h 3 additions, 0 deletionsdrivers/nvdimm/nd-core.h
- include/linux/libnvdimm.h 26 additions, 1 deletioninclude/linux/libnvdimm.h
- include/uapi/linux/Kbuild 1 addition, 0 deletionsinclude/uapi/linux/Kbuild
- include/uapi/linux/ndctl.h 178 additions, 0 deletionsinclude/uapi/linux/ndctl.h
Loading
Please register or sign in to comment