NDCTL Introduction

Last updated 2 months ago

The Non-Volatile Device Control (ndctl) is a utility for managing the LIBNVDIMM Linux Kernel subsystem. The LIBNVDIMM subsystem defines a kernel device model and control message interface for platform NFIT (NVDIMM Firmware Interface Table). This interface was first defined by the ACPI v6.0 specification. Later versions may enhance or modify this specification. The latest ACPI and UEFI specifications can be found at http://uefi.org/specifications.

The LIBNVDIMM subsystem provides support for three types of NVDIMMs, namely, PMEM, BLK, and NVDIMM devices that can simultaneously support both PMEM and BLK mode access. These three modes of operation are described by the "NVDIMM Firmware Interface Table" (NFIT) in ACPI v6.0 or later. While the LIBNVDIMM implementation is generic and supports pre-NFIT platforms, it was guided by the superset of capabilities need to support this ACPI 6 definition for NVDIMM resources. The bulk of the kernel implementation is in place to handle the case where DPA accessible via PMEM is aliased with DPA accessible via BLK. When that occurs a LABEL is needed to reserve DPA for exclusive access via one mode a time.

Operations supported by the tool include provisioning capacity (namespaces), as well as enumerating/enabling/disabling the devices (DIMMs, regions, namespaces) associated with an NVDIMM bus.

Get Started

To get started with the ndctl utility, first follow the Installing NDCTL document then the NDCTL Users Guide and man pages.

Supporting Documents

Source Code Repositories