Skip to content

kerf 0.3.0

Latest

Choose a tag to compare

@github-actions github-actions released this 25 Sep 20:52
· 13 commits to main since this release

Highlights

This release makes the PCI address the identity of every pool device and gives devices stable names through standard device tree /aliases. It also follows the kernel's move to the devicetree PCI bus binding, which puts devices under their host bridge. With these changes, the name you give kerf init is the name kerf create, kerf update, kerf show and kerf dump all accept and report.

Device identity and aliases

  • Key each pool device by its PCI address, with the node named pci_DDDD_BB_SS_F as the kernel derives it
  • Name devices through /aliases: an NVMe keeps its controller name, a network device keeps its interface name, and =alias overrides either
  • Pooling a partition pools the whole controller, and kerf says so
  • create, update and the validator accept an alias, a PCI address in any case, or a node name
  • kerf show prints each device's alias

kerf create

  • Assign devices by PCI address against the live pool, as update does. Devices pooled after the first kerf init now work instead of failing with "not found in base DTB"
  • Resolve --devices when the operation runs, so an unknown device fails before the overlay is built rather than passing --dry-run silently
  • --verbose reports the new instance from its own device tree instead of crashing with a KeyError

kerf update

  • Read an instance's devices from its tree with the parser, so devices can be taken back again; none takes every device back
  • Resolve --devices by alias, PCI address or node name against the pool plus what the instance holds

kerf init

  • Resolve a block device to its own PCI function, not a bridge above it
  • Take a device already in the pool from the live tree, so re-running kerf init with the same --devices succeeds
  • Count devices lent to instances as pool members; a device the request omits stays with its instance and is reported rather than moved

kerf kill

  • Point at --force when a graceful halt times out

Parser

  • Read pool and instance PCI devices from under their host bridge
  • Take the instance name from the standard model property; a tree without one is a pool dump, not an instance
  • Tolerate /aliases and host-bridge nodes in a dumped instance

Cleanups

  • Remove boot time measurement and the rdtsc dependency
  • Clean up pylint findings in models and tests

Full Changelog: v0.2.0...v0.3.0