Skip to content

ttkmd-2.9.0

Latest

Choose a tag to compare

@github-actions github-actions released this 09 Jun 13:25
· 1 commit to main since this release

Tenstorrent PCIe Driver Version 2.9.0 Release Notes

This release enables driver-managed power on Wormhole, adds a deferred idle power-down window, introduces read-only DMA pinning for file-backed memory, and protects telemetry reads against concurrent resets.

Important

Wormhole users: driver-managed power on Wormhole requires Chip Management Firmware (CMFW) 19.10.0 or later. On older firmware the driver logs a Failed to set initial power state warning on every open() and the device runs in its firmware-default power state. Update CMFW, or set the module parameter power_policy=0, to suppress the warning.


New Features

Wormhole Power Management

The Wormhole power-management framework introduced for Blackhole in 2.6.0 is now active on Wormhole.

  • power_policy=1 (the default) places the device in a low-power state at probe and re-aggregates open clients' requested power flags on every open/close.
  • TENSTORRENT_IOCTL_SET_POWER_STATE and the O_APPEND opt-in for power-aware applications now have effect on Wormhole.
  • Requires CMFW 19.10.0 or later. See the compatibility callout above.

Deferred Idle Power-Down

When the last file descriptor for a device closes, the idle power-down ARC message is now sent from a delayed work item rather than synchronously from release(). A subsequent open() arriving inside the grace window cancels the pending work, avoiding a needless powerdown/powerup pair on short reopens.

  • New module parameter idle_power_down_grace_ms (default 5000, runtime-tunable at 0644). 0 restores the synchronous behavior.
  • Enabled on Wormhole. Blackhole continues to send the idle message synchronously.

Read-Only Page Pinning

A new flag TENSTORRENT_PIN_PAGES_READ_ONLY for TENSTORRENT_IOCTL_PIN_PAGES requests a device-read-only mapping. The IOMMU programs read-only entries that fault on device writes.

  • Permits pinning device-readable views of file-backed memory that the unflagged ioctl rejects, including read-only mmap of files on disk (e.g. model weights) and MAP_SHARED mappings of files on a regular filesystem.
  • Available only when the device is behind an active IOMMU; the ioctl returns -EOPNOTSUPP otherwise.

Hwmon Limit Attributes on Blackhole

Blackhole hwmon now reports the same limit attributes that Wormhole has exposed, when the corresponding telemetry tags are provided by firmware:

  • temp_max, in_max, curr_max, power_max

Attributes for unreported tags remain hidden.


Bug Fixes

  • TENSTORRENT_LOCK_CTL_ACQUIRE_BLOCKING deadlock against reset. A blocking lock acquisition running concurrent with TENSTORRENT_IOCTL_RESET_DEVICE or with device removal could block indefinitely. Blocking acquires now wake on reset or removal and return -ENODEV.
  • Reset racing with open()/close(). A device reset overlapping concurrent open() or close() could let a stale power-state ARC message reach the device mid-reset. Reset and the open/close paths are now mutually exclusive.
  • Telemetry access during reset. Sysfs and hwmon reads return -EIO when the device has been removed or is mid-reset, in place of reading stale BARs.
  • Firmware updates across a reset. Updating CMFW and then resetting the device no longer leaves sysfs and hwmon reading at the previous firmware's telemetry locations; the telemetry tag table is re-discovered as part of POST_RESET.

Improvements

Kernel Log Context

Per-device driver log messages are now prefixed with the device's PCI location, and module-scope messages are prefixed with tenstorrent: , making it easier to attribute kernel log lines to a specific device on multi-device systems.

Packaging

  • RPM packaging produces a single noarch package, and prerelease suffixes (e.g. 2.9.0-rc1) are preserved in package filenames and the /usr/src install path instead of being truncated. Local builds are supported via tools/build_rpms.sh.
  • Debian package upgrades no longer leave stale DKMS state behind.
  • Continuous integration build targets updated from Fedora 41/42 to Fedora 42/43.

Compatibility Notes

New Synchronous ARC Traffic on Wormhole

With power_policy=1, the following Wormhole paths now block on an ARC power-state message that was a no-op in 2.8.0:

  • open() of a device file without O_APPEND (power-up to the high-performance compatibility state).
  • Every TENSTORRENT_IOCTL_SET_POWER_STATE call. Each invocation re-aggregates open clients' requests and sends the resulting state, regardless of whether the aggregate changed.

The last close() does not add latency: the idle power-down is deferred by idle_power_down_grace_ms (default 5000) and is cancelled if another open() arrives in that window.

Hwmon Limit Attributes on Blackhole

Applications that enumerate hwmon attributes will now see temp_max, in_max, curr_max, and power_max on Blackhole when the firmware reports the corresponding telemetry tags.