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.0arrow-up-right NFIT (NVDIMM Firmware Interface Table). The latest ACPI arrow-up-rightand UEFI arrow-up-rightspecifications can be found at uefi.orgarrow-up-right. 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

Was this helpful?