Skip to content

Releases: pmem/ndctl

ndctl: release v72

18 Dec 05:09
v72
25062cf
Compare
Choose a tag to compare

ndctl: release v72

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

ndctl: release v71.1

22 Dec 21:55
v71.1
bf01186
Compare
Choose a tag to compare
Fixes:
  ndctl/dimm: Attempt an abort upon firmware-update-busy status
  ndctl/dimm: Fix submit_abort_firmware()

ndctl: release v71

19 Dec 09:48
v71
4486529
Compare
Choose a tag to compare
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

ndctl: release v70.1

10 Oct 05:27
v70.1
25b3cb0
Compare
Choose a tag to compare
Fixes:
  libnvdimm: fix add_dimm for non-NFIT dimms
  ndctl.spec: fix rpm build for el8

ndctl: release v70

06 Oct 18:30
v70
a33a6d8
Compare
Choose a tag to compare
This release incorporates functionality up to the 5.9 kernel.

Highlights include support for the new firmware activation facility, a
new 'split-acpi' command in 'daxctl'to aid testing and debugging, and
other minor fixes.

Commands:
  update-firmware: add support for firmware activation
  list: updates for firmware activation
  activate-firmware: new command to trigger firmware activation
  daxctl-split-acpi: split ACPI tables for debugging

Tests:
  revoke-devmem: new test to validate iomem protections
  update-firmware: update to test firmware activation

APIs:
  ndctl_bus_activate_firmware
  ndctl_bus_clear_fw_activate_noidle
  ndctl_bus_clear_fw_activate_nosuspend
  ndctl_bus_get_fw_activate_method
  ndctl_bus_get_fw_activate_state
  ndctl_bus_set_fw_activate_noidle
  ndctl_bus_set_fw_activate_nosuspend
  ndctl_dimm_fw_activate_arm
  ndctl_dimm_fw_activate_disarm
  ndctl_dimm_get_fw_activate_result
  ndctl_dimm_get_fw_activate_state

ndctl: release v69

23 Jul 05:53
v69
ea62d6d
Compare
Choose a tag to compare
This release incorporates functionality up to the 5.8 kernel.

Highlights include support for 'PAPR' NVDIMMs, a build fix for
zero-length array warnings in GCC10, a new option for ndctl-monitor
allowing for a timeout for epoll, and misc unit test and documentation
fixes.

Commands:
  monitor: add a new timeout option for polling
  list: skip region filtering if numa_node is absent
  {read,write}-infoblock: set a default alignment based on platform
  list/others: support for PAPR NVDIMMs

Tests:
  align.sh: fix region selection, and label init expectation

APIs:
  ndctl_bus_has_of_node
  ndctl_bus_is_papr_scm
  ndctl_region_has_numa

ndctl: release v68

24 Mar 05:14
v68
c776783
Compare
Choose a tag to compare
This release incorporates functionality up to the 5.6 kernel.

Highlights for this release include new commands to read-infoblock and
write-infoblock, improvements and tests related to alignment
constraints, misc build/compilation related fixes, and misc usability and
documentation fixes.

Commands:
  zero-labels: display an error if regions are active
  destroy-namespace: fix seed namespace accounting
  list: drop named list objects from verbose listing
  *-namespace: emit better errors on failure
  read-infoblock: new command to read an infoblock
  write-infoblock: new command to create and write an infoblock

Tests:
  add bus-id parameter for start-scrub/wait-scrub operation
  udate dax-dev to handle multiple e820 ranges
  exercise sub-section sized namespace creation/deletion
  new test for misaligned namespaces
  labels: test for 'failed to track'

APIs:
  ndctl_namespace_get_target_node
  ndctl_namespace_is_configuration_idle
  ndctl_region_get_align
  ndctl_region_get_target_node
  ndctl_region_set_align

ndctl: release v67

28 Oct 17:43
v67
637bb42
Compare
Choose a tag to compare
This release incorporates functionality up to the 5.4 kernel, and adds a
number of bug fixes, and improvements.

Highlights include small changes for PowerPC compatibility, improvements
to the dax.sh unit test to detect failures in mapping huge pages,
support for the 'security frozen' attribute, user experience
improvements for the daxctl-reconfigure-device command, including an
option to specify movable vs. non-movable state for onlining memory, and
an option to allow create-namespaces to create a maximal configuration
until it exhausts all available region capacity.

Commands:
  create-namespace: add --continue option
  daxctl-reconfigure-device: add --no-movable option
  daxctl-reconfigure-device: display movable state in listings
  daxctl-reconfigure-device: detect races in memory onlining
  security: support for 'security frozen' attribute

Tests:
  dax.sh: add detection for huge page failures
  dax.sh: add XFS reflink dependency
  daxctl-devices.sh: skip on older kernels

APIs:
  ndctl_dimm_security_is_frozen
  daxctl_memory_is_movable
  daxctl_memory_online_no_movable

ndctl: release v66

07 Aug 18:58
v66
cec5975
Compare
Choose a tag to compare
This release incorporates functionality up to the 5.3 kernel, and adds a
number of bug fixes, and improvements.

Highlights include a new command to reconfigure dax devices to
different modes (devdax - default, and system-ram - to hotplug the dax
device as system memory), improvements to ndctl-{read,write,init}-labels
allowing smaller sized reads/writes, usability fixes to ndctl-monitor,
and ndctl-create-namespace, and a fix to ndctl-check-namespace allowing
it to be used on systems with different page sizes.

Commands:
  daxctl-reconfigure-device: new command for device mode management
  daxctl-{on,off}line-memory: new commands for devices in system-ram mode
  monitor: logging improvements, allow sending to background
  inject-error: refuse to operate on activew BTT namespaces
  *-labels: improvements to minimize data transfer
  create-namespace: usability improvements around region search

Tests:
  security.sh: handle backup keys, mark test as 'destructive'
  device-dax: fix bus-model detection
  daxctl-devices: new test for daxctl-reconfigure-device

APIs:
  ndctl_cmd_cfg_read_set_extent
  ndctl_cmd_cfg_write_set_extent
  ndctl_dimm_read_label_extent
  ndctl_dimm_read_label_index
  ndctl_dimm_zero_label_extent
  daxctl_dev_disable
  daxctl_dev_enable_devdax
  daxctl_dev_enable_ram
  daxctl_dev_get_ctx
  daxctl_dev_get_memory
  daxctl_dev_get_resource
  daxctl_dev_get_target_node
  daxctl_dev_is_enabled
  daxctl_memory_get_block_size
  daxctl_memory_get_dev
  daxctl_memory_get_node_path
  daxctl_memory_is_online
  daxctl_memory_num_sections
  daxctl_memory_offline
  daxctl_memory_online

ndctl: release v65

11 May 00:09
v65
ed17fd1
Compare
Choose a tag to compare
This release incorporates functionality up to the 5.1 kernel, and adds a
number of bug fixes and improvements.

Highlights include a new command to clear errors on a given namespace, a
new travis YAML configuration to enable travis builds for Ubuntu, an
example QEMU script in contrib/ for HMAT emulation, an optional poll
interval for wait-scrub, several fixes related to the security commands,
support for the HYPER-V family of DSM commands, and several fixes to
tests, documentation, and related to building.

Commands:
    clear-errors: new command to clear errors on a namespace
    monitor: remove the requirement of a default config
    sanitize-dimm: allow a zero-key for secure-erase
    sanitize-dimm: preserve keys after an overwrite
    load-keys: fix for non-TPM keys

Tests:
    security: add a new testlet for load-keys
    test-core: add dax_pmem* modules
    misc: fix sys/mman.h vs linux/mman.h includes

APIs:
    ndctl_bus_poll_scrub_completion