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 v72.0
This release incorporates functionality up to the 5.16 kernel.
Highlights include a new utility and library for interfacing with the 'CXL' drivers and devices, a policy based configuration mechanism for ndctl and daxctl, fixes, test updates, and general additions for the PAPR family of NVDIMMs, more seed device accounting fixes, misc unit test and documentation updates, and fixes to NVDIMM bus scrubbing.
Commands:
cxl-cli: new utility providing list, {read,write,zero}-label commands
daxctl-reconfigure-device: new --check-config option
ndctl-monitor: add support for a new unified config file format
ndctl-*-namespace: seed namespace accounting fixes
Tests:
Fix device-dax mremap() test
Exercise soft_offline_page() corner cases
Fix btt expect table compile warning
monitor.sh: add checking the presence of jq command ahead of time
APIs:
ndctl_bus_nfit_translate_spa
ndctl_dimm_sizeof_namespace_index
ndctl_get_config_path
ndctl_set_config_path
daxctl_dev_has_online_memory
daxctl_dev_will_auto_online_memory
daxctl_get_config_path
daxctl_set_config_path
cxl_cmd_get_devname
cxl_cmd_get_mbox_status
cxl_cmd_get_out_size
cxl_cmd_health_info_get_dirty_shutdowns
cxl_cmd_health_info_get_ext_corrected_persistent_normal
cxl_cmd_health_info_get_ext_corrected_persistent_warning
cxl_cmd_health_info_get_ext_corrected_volatile_normal
cxl_cmd_health_info_get_ext_corrected_volatile_warning
cxl_cmd_health_info_get_ext_life_used_critical
cxl_cmd_health_info_get_ext_life_used_normal
cxl_cmd_health_info_get_ext_life_used_warning
cxl_cmd_health_info_get_ext_temperature_critical
cxl_cmd_health_info_get_ext_temperature_normal
cxl_cmd_health_info_get_ext_temperature_warning
cxl_cmd_health_info_get_hw_replacement_needed
cxl_cmd_health_info_get_life_used
cxl_cmd_health_info_get_maintenance_needed
cxl_cmd_health_info_get_media_data_loss_imminent
cxl_cmd_health_info_get_media_data_lost
cxl_cmd_health_info_get_media_normal
cxl_cmd_health_info_get_media_not_ready
cxl_cmd_health_info_get_media_persistence_loss_imminent
cxl_cmd_health_info_get_media_persistence_lost
cxl_cmd_health_info_get_media_powerloss_data_loss
cxl_cmd_health_info_get_media_powerloss_persistence_loss
cxl_cmd_health_info_get_media_shutdown_data_loss
cxl_cmd_health_info_get_media_shutdown_persistence_loss
cxl_cmd_health_info_get_performance_degraded
cxl_cmd_health_info_get_pmem_errors
cxl_cmd_health_info_get_temperature
cxl_cmd_health_info_get_volatile_errors
cxl_cmd_identify_get_fw_rev
cxl_cmd_identify_get_label_size
cxl_cmd_identify_get_partition_align
cxl_cmd_new_get_health_info
cxl_cmd_new_identify
cxl_cmd_new_raw
cxl_cmd_new_read_label cxl_cmd_new_write_label
cxl_cmd_read_label_get_payload
cxl_cmd_ref cxl_cmd_set_input_payload
cxl_cmd_set_output_payload cxl_cmd_submit
cxl_cmd_unref cxl_get_log_priority
cxl_get_private_data
cxl_get_userdata
cxl_memdev_get_ctx
cxl_memdev_get_devname
cxl_memdev_get_firmware_verison
cxl_memdev_get_first
cxl_memdev_get_id
cxl_memdev_get_label_size
cxl_memdev_get_major
cxl_memdev_get_minor
cxl_memdev_get_next
cxl_memdev_get_pmem_size
cxl_memdev_get_ram_size
cxl_memdev_nvdimm_bridge_active
cxl_memdev_read_label
cxl_memdev_write_label
cxl_memdev_zero_label
cxl_new cxl_ref
cxl_set_log_fn
cxl_set_log_priority
cxl_set_private_data
cxl_set_userdata cxl_unref
Last updated