Skip to content

Releases: pmem/ndctl

ndctl: release v84

15 Mar 01:23
v84
8ad90e5

Choose a tag to compare

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

30 Sep 23:24
v83
4f7a1c6

Choose a tag to compare

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

12 Jun 01:54
v82
74b9e41

Choose a tag to compare

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

22 Mar 01:16
v81
92d5203

Choose a tag to compare

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

10 Oct 16:07
v80
04815e5

Choose a tag to compare

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

02 May 21:44
v79
16f4575

Choose a tag to compare

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

03 Aug 22:25
v78
a871e61

Choose a tag to compare

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

02 May 20:29
v77
2fd570a

Choose a tag to compare

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

24 Feb 19:47
v76.1
b782a2c

Choose a tag to compare

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

22 Feb 22:47
v76
cb4c8f9

Choose a tag to compare

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