NDCTL Changelog
The master index can be found at https://github.com/pmem/ndctl/releases

v67.0

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

v66.0 - 7th August, 2019

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 active 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

v65.0 - 9th May, 2019

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

v64.1 - 5th February, 2019

Fixes:
    Fix build issues around keyutils inclusion

v64.0 - 2nd February, 2019

This release incorporates functionality up to the 5.0 kernel, and adds a number of bug fixes and improvements.
Highlights include a migration path for the new dax-bus ABI, several cleanups to ndctl-monitor, support for firmware status translation, displaying the supported_alignments attribute, and using it in the namespace creation process, and support for security operations as defined in the Intel DSM specification.
Commands:
    inject-smart: check the firmware status for errors
    zero-labels: correctly handle firmware errors
    create-namespace: use supported_alignments when available
    Add new security commands
Tests:
    security.sh: new test for security commands
    device-dax: fix intermittent poison handling failures
    dsm-fail: cleanup leftover debug
APIs:
    ndctl_cmd_submit_xlat
    ndctl_cmd_xlat_firmware_status
    ndctl_dax_get_num_alignments
    ndctl_dax_get_supported_alignment
    ndctl_dimm_disable_passphrase
    ndctl_dimm_freeze_security
    ndctl_dimm_get_security
    ndctl_dimm_master_secure_erase
    ndctl_dimm_overwrite
    ndctl_dimm_secure_erase
    ndctl_dimm_update_master_passphrase
    ndctl_dimm_update_passphrase
    ndctl_dimm_wait_overwrite
    ndctl_pfn_get_num_alignments
    ndctl_pfn_get_supported_alignment

v63.0 - 7th October, 2018

This release incorporates functionality up to the 4.20 kernel, and a number of bug fixes and improvements.
Highlights include switching the documentation build to asciidoctor by default, fixes to destroy-namespace for reporting the number of namespaces acted upon, using the namespace badblocks listings exported by the kernel, and making them available to non-root users, a new helper for retrieving the dirty-shutdown-count, reverting the udev rule to set the shutdown count latch and cache the dirty-shutdown-count, and fixing the ndctl-monitor daemon to exit successfully in the absence of NVDIMMs.
Commands:
    destroy-namespace: fix number of namespaces reported
    check-labels: fix the number of labels checked reporting
    monitor: exit daemon with success when no DIMMs found
Tests:
    Fix a missing include for list_smart_dimm
    pfn-meta-errors.sh: new test for clearing errors in the volatile 'struct page' metadata area
APIs:
    ndctl_dimm_get_dirty_shutdown
    ndctl_namespace_get_first_badblock
    ndctl_namespace_get_next_badblock

v62.0 - 9th July, 2018

This release incorporates functionality up to the 4.19 kernel, and a number of bug fixes and improvements.
Highlights include addition of the 'ndctl monitor' command to monitor for SMART health events, use of the new max_available_extent sysfs attribute for namespace creation, verbosity levels for ndctl-list, a udev rule for enabling the LSS latch when supported, a bypass route for making the unsafe shutdown count available for non-privileged users, improvements to ndctl-inject-smart that include an 'uninject' option for all fields, and a new unit test, a number of static analysis fixes, and unit test improvements and fixes.
Commands:
    monitor: new command for monitoring SMART health events
    list: support -v, -vv, -vvv verbosity levels
    inject-smart: add --uninject- and --uninject-all options
    create-namespace: use maxavailable_extent for namespace creation
    list: add new fields to -H for alarm_enabled
    list: always output JSON arrays when --human is absent
Tests:
    dax.sh: dax-poisonCheck for availability of MAP_SYNC
    dax.sh: fix return code
    device-dax: relax canned timeouts
    monitor: new test
    inject-smart: new test
    max_available_extent_ns: new test
APIs:
    ndctl_cmd_smart_inject_ctrl_temperature
    ndctl_dimm_get_event_flags
    ndctl_dimm_get_flags
    ndctl_dimm_get_health
    ndctl_dimm_is_flag_supported
    ndctl_dimm_smart_inject_supported
    ndctl_region_get_max_available_extent

v61.2 - 6th July, 2018

Fixes:
    libndctl: fix the uninject API (v1) actually injecting errors

v61.1 - 27th June, 2018

Fixes:
    Add autotools detection for MAP_SYNC

v61.0 - 26th June, 2018

This release incorporates functionality up to the 4.18 kernel, and a number of bug fixes and improvements.
Highlights include a fix to the error injection APIs to inject fewer bytes of errors per sector, support for building documentation with asciidoctor in addition to asciidoc, multi-arrgument support for util__filter, and a new OPTION_FILENAME in option parsing. Unit test updates include cleanups to unit test scripts refactoring out a lot of common boilerplate, MADV_HWPOISON tests, and a new test for capacity vs label locking.
Commands:
    inject-error: add a --saturate option to inject entire sectors
    list: display the 'map' location in namespace listings
    list: add controller temperature, and its threshold/alarm setting
Tests:
    dax-pmd, device-dax: add a test for MADV_HWPOISON
    sector-mode.sh: fix to work with updated label support in nfit_test
    common: source common bash functions and variables
    dsm-fail: test for capacity vs label locking
    libndctl: update for smart controller temperature
    various: disable tests that inject poison with dax until 4.19
APIs:
    ndctl_cmd_ars_cap_get_clear_unit
    ndctl_cmd_ars_stat_get_flag_overflow
    ndctl_namespace_inject_error2
    ndctl_namespace_uninject_error2

v60.3 - May 17th, 2018

Fixes:
    ndctl: fix libtool versioning

v60.2 - May 16th, 2018

Fixes:
    inject-error: inject only 'clear_err_unit' bytes of error per sector

v60.1 - April 23rd, 2018

Fixes:
    documentation: add inject-smart to the Makefile
    libndctl: fix ABI breakage due to rename of fw_info_get_updated_version

v60 - April 17th, 2018

Added:
This release incorporates functionality up to the 4.17 kernel, and a number of bug fixes and improvements.
Highlights include ack_shutdown_count support, fixes to tests that performed error injections, refactor core topology walking into util_filter_walk(), a new test for partition auto detection for btt/blk namespacees, numa_node support for regions, cleanups to the firmware update command, removal of daxctl io, support for persistence domains for buses and regions, APIs for retrieving and setting the write_cache attribute for namespacees, fixes to ARS APIs, new ARS control commands in ndctl, and an API for the deep_flush attribute for regions.
Commands:
    ndctl list: option to display firmware information
    ndctl create-namespace: fix minimum alignment detection
    ndctl list: allow filtereing by numa node
    ndctl list: fix sector_size sometimes showing as -1
    daxctl io: remove as this functionality is provided in PMDK
    ndctl update-firmware: fix DSM input/output sizes various: replace direct errno prints with strerror strings
    ndctl read-labels: fix json reference counting
    various: replace refrences to 'memory' or 'dax' with 'devdax' or 'fsdax'
    ndctl list: report the bus scrub state
    ndctl {wait,start}-scrub: new commands for ARS control
    ndctl list: add a raw_uuid field to namespace listings
Tests:
    ack-shutdown-count-set: new test for the shutdown count APIs
    various: ensure we use the locally build 'ndctl'
    various: fix usage of error injection commands for older kernels
    btt-pad-compat: fix stale json being reused for future commands
    btt-pad-compat: explicitly request namespace size
    dpa-alloc: fix for kernels with 4M min namespace size
    btt-pad-compat: skip for pre-4k capable kernels
    firmware-update: remove fallocate
    rescan-partitions: new test for autodetection of partitions
    core: fix module taint sanity check
    libndctl: add write_cache testing in check_nameespaces()
    pmem-errors: fix locking vs new ARS reworks
API's:
    ndctl_bus_get_persistence_domain
    ndctl_bus_get_scrub_state
    ndctl_bus_start_scrub
    ndctl_cmd_fw_info_get_next_version
    ndctl_dimm_cmd_new_ack_shutdown_count
    ndctl_dimm_fw_update_supported
    ndctl_namespace_disable_write_cache
    ndctl_namespace_enable_write_cache
    ndctl_namespace_write_cache_is_enabled
    ndctl_region_deep_flush
    ndctl_region_get_numa_node
    ndctl_region_get_persistence_domain

v59.3 - March 27th, 2018

Fixes:
    create-namespace: fix minimum alignment detection
    list: fix sector_size listing
    API, smart: fix threshold temperature helper
    update-firmware: fix input/output size for NVDIMM_FAMILY_INTEL
    update-firmware: kill usage of flock() in verify_fw_file()
    test: fix module-taint sanity-check

v59.2 - February 9th, 2018

Fixes:
    Unit test fixups for package build environments.

v59.1 - February 9th, 2018

Fixes:
    Compile fixes for ARM and PowerPC

v59.0 - February 9th, 2018

This release incorporates functionality up to the 4.16 kernel, and a number of bug fixes and improvements.
Highlights include new ACPI error injection DSM support, a variety of smart enhancements that include getting and setting thresholds, injecting smart attribute values and flags, support for firmware update, and fixes for a BTT padding incompatibility.
Commands:
    ndctl inject-error - new command for media error injection
    ndctl disable-region - check for mounted namespaces
    ndctl {create,destroy}-namespace - clarify --force option
    ndctl create-namespace - clarify autolabel failures and fallback
    ndctl list - use 'fsdax' and 'devdax' modes
    ndctl update-firmware - new command for firmware update
    ndctl inject-smart - new command for setting smart thresholds and injecting attributes
Tests:
    inject-error: new test for the error injection interfaces
    btt-errors: new test for media error handling in the BTT
    smart-listen: test for listening for smart triggers
    smart-notify: generate smart notifications
    hugetlb: test hugetlb faults
    btt-pad-incompat: regression test for the old and new versions of the btt log padding format
    update-firmware: test the firmware update process
API's:
    ndctl_bb_get_block
    ndctl_bb_get_count
    ndctl_bus_get_scrub_count
    ndctl_bus_has_error_injection
    ndctl_bus_wait_for_scrub_completion
    ndctl_cmd_fw_fquery_get_fw_rev
    ndctl_cmd_fw_info_get_max_query_time
    ndctl_cmd_fw_info_get_max_send_len
    ndctl_cmd_fw_info_get_query_interval
    ndctl_cmd_fw_info_get_run_version
    ndctl_cmd_fw_info_get_storage_size
    ndctl_cmd_fw_info_get_updated_version
    ndctl_cmd_fw_start_get_context
    ndctl_cmd_fw_xlat_firmware_status
    ndctl_cmd_smart_get_ctrl_temperature
    ndctl_cmd_smart_get_media_temperature
    ndctl_cmd_smart_get_shutdown_count
    ndctl_cmd_smart_inject_fatal
    ndctl_cmd_smart_inject_media_temperature
    ndctl_cmd_smart_inject_spares
    ndctl_cmd_smart_inject_unsafe_shutdown
    ndctl_cmd_smart_threshold_get_ctrl_temperature
    ndctl_cmd_smart_threshold_get_media_temperature
    ndctl_cmd_smart_threshold_get_supported_alarms
    ndctl_cmd_smart_threshold_set_alarm_control
    ndctl_cmd_smart_threshold_set_ctrl_temperature ndctl_cmd_smart_threshold_set_media_temperature
    ndctl_cmd_smart_threshold_set_spares
    ndctl_cmd_smart_threshold_set_temperature
    ndctl_decode_smart_temperature
    ndctl_dimm_aliased ndctl_dimm_cmd_new_fw_abort
    ndctl_dimm_cmd_new_fw_finish
    ndctl_dimm_cmd_new_fw_finish_query
    ndctl_dimm_cmd_new_fw_get_info
    ndctl_dimm_cmd_new_fw_send
    ndctl_dimm_cmd_new_fw_start_update
    ndctl_dimm_cmd_new_smart_inject
    ndctl_dimm_cmd_new_smart_set_threshold
    ndctl_dimm_locked ndctl_encode_smart_temperature
    ndctl_namespace_inject_error
    ndctl_namespace_injection_get_first_bb
    ndctl_namespace_injection_get_next_bb
    ndctl_namespace_injection_status
    ndctl_namespace_uninject_error
Last modified 1yr ago