NDCTL User Guide

Introduction

ndctl is a utility for managing the Linux LIBNVDIMM Kernel subsystem. It is designed to work with various non-volatile memory devices (NVDIMMs) from different vendors. The LIBNVDIMM subsystem defines a kernel device model and control message interface for platform NVDIMM resources like those defined by the ACPI v6.0 NFIT (NVDIMM Firmware Interface Table). The latest ACPI and UEFI specifications can be found at uefi.org. Operations supported by ndctl include:

  • Provisioning capacity (namespaces)

  • Enumerating Devices

  • Enabling and Disabling NVDIMMs, Regions, and Namespaces

  • Managing NVDIMM Labels

What's new in v71

This release incorporates functionality up to the 5.10 kernel.

Highlights include support for the new device-dax subdivision functionality added in Linux in v5.10, including ways to create smaller devdax devices using daxctl/libdaxctl, as well as creating, listing, and restoring from a config dump, 'mappings' on these devices. Other updates include several static analysis fixups, reworking the license identification scheme for different sub-components, and a fix for the reconfigure-in-place workflow which tries to retain device names.

Commands:

  • daxctl-create-device: new command

  • daxctl-destroy-device: new command

  • daxctl-enable-device: new command

  • daxctl-disable-device: new command

  • daxctl-reconfigure-device: allow resizing devices

  • ndctl-create-namespace: improve reconfigure in-place

Tests:

  • daxctl-create.sh: new test for device-dax subdivision

APIs:

  • daxctl_dev_get_align

  • daxctl_dev_set_align

  • daxctl_dev_set_mapping

  • daxctl_dev_set_size

  • daxctl_mapping_get_end

  • daxctl_mapping_get_first

  • daxctl_mapping_get_next

  • daxctl_mapping_get_offset

  • daxctl_mapping_get_size

  • daxctl_mapping_get_start

  • daxctl_region_create_dev

  • daxctl_region_destroy_dev

Last updated