Releases: pmem/ndctl
ndctl: release v84
This release incorporates functionality up through the 7.0 kernel.
Highlights include new cxl-cli commands for media and protocol error injection, visibility of Extended Linear Cache (ELC) in cxl-list along with a new ELC unit test, and a unit test for address translation. It also includes additional unit test and infrastructure improvements that improve test coverage and overall quality.
Commands:
cxl-inject-protocol-error: new command
cxl-inject-media-poison: new command
cxl-list: add extended linear cache info
cxl-list: add injection info
APIs:
cxl_region_get_extended_linear_cache_size;
cxl_protocol_error_get_first;
cxl_protocol_error_get_next;
cxl_protocol_error_get_num;
cxl_protocol_error_get_str;
cxl_dport_get_einj_path;
cxl_dport_protocol_error_inject;
cxl_memdev_has_poison_support;
cxl_memdev_inject_poison;
cxl_memdev_clear_poison;
cxl_debugfs_exists;
Tests:
test/cxl-poison.sh: add test case for unaligned address translations
test/cxl-elc.sh: add a new test for extended linear cache support
test/cxl-poison.sh: detect the correct elc sysfs attribute
test/cxl-poison.sh: replace sysfs usage with cxl-cli cmds
test/cxl-translate.sh: add new cxl-translate.sh unit test
test/cxl-topology.sh: test switch port target enumeration
test/pmem-ns: fully reset nfit_test in pmem-ns unit test
test/cxl-poison.sh: add support for ELC in poison test
test/cxl-poison.sh: use the cxl_test auto region
Infrastructure:
util/sysfs: add hint for missing root privileges on sysfs access
util/sysfs: save and use errno properly in read and write paths
README.md: exclude unsupported distros from Repology badge
daxctl: replace basename() usage with new path_basename()
ndctl: add key cleanup after overwrite operation
Documentation:
documentation: add docs for protocol and poison injection commands
v83
ndctl: release v83
This release incorporates functionality up through the 6.17 kernel.
It corrects the issue where libtracefs became a requirement to build
versions 80,81,82. Libtracefs is returned to optional status in v83.
Note that the '--media-errors' option to cxl-list, as well as the
monitor command, is not available when libtracefs is disabled.
API:
cxl: add helper function to verify port is in memdev hierarchy
cxl: document 'cxl enable-port -m' behavior change
Tests:
README.md: update package requirements for the test environment
test/cxl-poison.sh: test inject and clear poison by region offset
test/common: move err() function to top of file
test/common: add double quotes to bash variables
test/dax.sh: adjust trace parsing of fault results
test/dm.sh: use dm.sh as script name in cleanup error message
test/meson.build: add fwctl dependency needed for cxl-features.sh
test/sub-section.sh: use built ndctl program in unit test
Infrastructure:
cxl/list: remove libtracefs build dependency for --media-errors
build: update meson feature deprecation warnings
ndctl: fix user visible spelling errors
v82
ndctl: release v82
This release incorporates functionality up through the 6.15 kernel.
Aligning with the CXL Features capability introduced in the 6.15
kernel, ndctl adds libcxl enumeration of FWCTL character devices
which enables issuing of the new ioctl's to the device.
A new CXL Features unit test is added and it includes a C program
"fwctl.c" that provides an example for users of the new capability.
Existing test and infrastructure is updated.
API:
libcxl: enumerate major/minor of FWCTL char device
libcxl: add cxl_bus_get_by_provider()
Tests:
test/cxl-features.sh: add test for CXL features device
test/cxl-xor-region.sh: remove redundant waiting
test/cxl-topology.sh: change assumption on host bridge validation
Infrastructure:
README.md: update the kernel config requirement for unit tests
test/meson.build: use the default POSIX locale for unit tests
cxl: add features.h from kernel UAPI for CXL Features support
cxl/test: skip, don't fail, when kernel tracing is not enabled
cxl/test: set the $CXL environment variable in meson.build
v81
ndctl: release v81
This release incorporates functionality up to the 6.14 kernel.
Highlights are usability improvements in daxctl and region creation
and listing. Namespace creation gets more robust parameter handling
and unit tests are improved.
Commands:
cxl/region: report max size for region creation
ndctl/list: display region caps for any of BTT, PFN, DAX
daxctl: output more information if memblock is unremovable
ndctl/namespace: protect against overflow handling param.offset
ndctl/namespace: avoid integer overflow in namespace validation
ndctl/namespace: close file descriptor in do_xaction_namespace()
ndctl/namespace: protect against under|over-flow w bad param.align
Tests:
test/cxl-events.sh: do not fail test until event counts are reported
test/security.sh: add jq requirement check
test/monitor.sh: make shell variable handling more robust
test/monitor.sh: convert float to integer before increment
API:
cxl/lib: remove unimplemented symbol cxl_mapping_get_region
Infrastructure:
util/strbuf: remove unused cli infrastructure imports
cxl/json: remove prefix from tracefs.h #include
ndctl: release v80
ndctl: release v80
This release incorporates functionality up through the 6.11 kernel.
Highlights include support for listing CXL media-errors, usability
fixups in daxctl create-device, the addition of firmware revision
in CXL memdev listings, and misc unit test and build fixes.
Commands:
cxl-list: add --media-errors option
cxl-list: always emit memdev firmware revision
daxctl: fail create-device with extra parameters
daxctl: remove unused options from create-device usage message
ndctl load-keys: stop leaking file descriptors upon error
Tests:
cxl-poison.sh: new unit test
cxl-events.sh: add test case for region info
daxctl-create.sh: use bash math syntax to find available size
daxctl-create.sh: use CXL DAX regions instead of efi_fake_mem
rescan-partitions.sh: refine search for created partition
API:
cxl_memdev_trigger_poison_list
cxl_region_trigger_poison_list
v79
ndctl: release v79
This release incorporates functionality up to and including the 6.9 kernel.
Highlights include test and build fixes, a new cxl-wait-sanitize
command, support for QOS Class in cxl-create-region, and a new
cxl-set-alert-config command.
Commands:
cxl-create-region: Add QOS Class support
cxl-wait-sanitize: New command
cxl-disable-region: Add a new --force option
cxl-set-alert-config: New command
cxl-monitor: fix event_trace array parsing
daxctl-destroy-device: fix accounting for number of devices destroyed
Tests:
cxl/test: use max_available_extent in cxl-destroy-region
cxl: Add a test for qos_class in CXL test suite
cxl/test: add 3-way HB interleave testcase to cxl-xor-region.sh
cxl/test: add double quotes in cxl-xor-region.sh
cxl/test: replace spaces with tabs in cxl-xor-region.sh
test/daxctl-create.sh: remove region and dax device assumptions
test/cxl-region-sysfs: fix a missing space syntax error
test/cxl-region-sysfs.sh: use '[[ ]]' command to evaluate operands as arithmetic expressions
ndctl/test: Add destroy region test
cxl/test: Validate sanitize notifications
cxl/test: validate the auto region in cxl-topology.sh
cxl/test: replace a bad root decoder usage in cxl-xor-region.sh
test/security.sh: test keyctl before excuting
test/daxctl-devices.sh: increase the namespace size to 4GiB
test/cxl-event: Skip cxl event testing if cxl-test is not available
test/cxl-update-firmware: Fix checksum sysfs query
APIs:
daxctl_dev_is_system_ram_capable
cxl_cmd_alert_config_set_corrected_pmem_err_prog_warn_threshold
cxl_cmd_alert_config_set_corrected_volatile_mem_err_prog_warn_threshold
cxl_cmd_alert_config_set_dev_over_temperature_prog_warn_threshold
cxl_cmd_alert_config_set_dev_under_temperature_prog_warn_threshold
cxl_cmd_alert_config_set_enable_alert_actions
cxl_cmd_alert_config_set_life_used_prog_warn_threshold
cxl_cmd_alert_config_set_valid_alert_actions
cxl_cmd_new_set_alert_config
cxl_memdev_get_pmem_qos_class
cxl_memdev_get_ram_qos_class
cxl_memdev_wait_sanitize
cxl_port_decoders_committed
cxl_region_qos_class_mismatch
cxl_root_decoder_get_qos_class
v78
ndctl: release v78
This release incorporates functionality up to the 6.5 kernel.
Highlights include fixes to cxl-monitor and ndctl-monitor, a new
cxl-update-firmware command, various documentation fixes, and a new unit
test for cxl events.
Commands:
cxl-update-firmware: new command to update firmware on CXL memdevs
{cxl,ndctl}-monitor: fixes for option handling for logging
Tests:
cxl-events.sh: new test for CXL events
APIs:
cxl_cmd_fw_info_get_active_slot
cxl_cmd_fw_info_get_fw_ver
cxl_cmd_fw_info_get_num_slots
cxl_cmd_fw_info_get_online_activate_capable
cxl_cmd_fw_info_get_staged_slot
cxl_cmd_new_get_fw_info
cxl_memdev_cancel_fw_update
cxl_memdev_fw_update_get_remaining
cxl_memdev_fw_update_in_progress
cxl_memdev_update_fw
ndctl: release v77
ndctl: release v77
This release incorporates functionality up to the 6.3 kernel.
Highlights include some build fixes around cx-monitor and event tracing,
the ability to create ram type regions, some fixes to create-region to
allow a user-supplied UUID, cxl-list fixes for RCD devices, and region
listings, cxl-list filtering improvements, and some unit test fixes.
Commands:
cxl-list: Include regions in the verbose listing
cxl-list: Enumerate device-dax properties for regions
cxl-list: Fix filtering RCDs
cxl-list: Filter root decoders by region
cxl-list: Add parent_dport attribute to port listings
cxl-list: Add a type attribute to region listings
cxl-create-region: add creation of ram type regions
cxl-create-region: skip region_actions for region creation
cxl-create-region: automatic type detection based on memdev capacity
Tests:
all: fix module load path expectations
libndctl: fix dangling pointer warnings
cxl-security.sh: use the correct 'cxl' binary
APIs:
cxl_decoder_create_ram_region
cxl_port_get_parent_dport
cxl_region_get_daxctl_region
cxl_region_get_mode
ndctl: release v76.1
ndctl: release v76.1
Fixes:
cxl/event-trace: use the wrapped util_json_new_u64()
cxl/monitor: fix include paths for tracefs and traceevent
cxl/monitor: Make libtracefs dependency optional
ndctl: release v76
This release incorporates functionality up to the 6.2 kernel. Highlights include the new cxl-monitor command that uses CXL trace events, fix for a long-standing off-by-one in memblock enumeration in libdaxctl, another daxctl fix to be tolerant of new sysfs attributes starting with 'memory_', that are not regular memblocks, and a few other misc cleanups and fixes. Commands: daxctl-online-memory: fix a memblock enumeration off-by-one daxctl-online-memory: tolerate non-memblock sysfs attrs that start with 'memory_' cxl-monitor: new command to monitor CXL events Tests: cxl-xor-region.sh: fix a skip vs. fail condition cxl-security.sh: fix intermittent failures due to race with cxl_test probe APIs: no new APIs