I am trying to create a VM with an NVMe passed through to it. The NVMe is not in use in any pool.
I am getting an error “device is not available”. Traceback and lspci below.
Is this user error, or likely to be a bug in TN 26? If the latter, I’ll open a Jira for it.
It might be user error, if CE needs additional Tunables the way CORE did, to allow PCIe passthrough.
Cannot start domain 'docker':
device.pci_0000_05_00_0: Device pci_0000_05_00_0 is not available
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/middlewared/api/base/server/ws_handler/rpc.py", line 387, in process_method_call
result = await method.call(app, id_, params)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/middlewared/api/base/server/method.py", line 57, in call
result = await self.middleware.call_with_audit(self.name, self.serviceobj, methodobj, params, app,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
message_id=id_)
^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/middlewared/main.py", line 1118, in call_with_audit
result = await self._call(method, serviceobj, methodobj, params, app=app,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
audit_callback=audit_callback_messages.append, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/middlewared/main.py", line 945, in _call
return await self.run_in_executor(
^^^^^^^^^^^^^^^^^^^^^^^^^^^
...<4 lines>...
)
^
File "/usr/lib/python3/dist-packages/middlewared/main.py", line 798, in run_in_executor
return await loop.run_in_executor(pool, functools.partial(method, *args, **kwargs))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.13/concurrent/futures/thread.py", line 59, in run
result = self.fn(*self.args, **self.kwargs)
File "/usr/lib/python3/dist-packages/middlewared/api/base/decorator.py", line 217, in wrapped
result = func(*args)
File "/usr/lib/python3/dist-packages/middlewared/plugins/vm/vm_lifecycle.py", line 55, in start
self.middleware.libvirt_domains_manager.vms.start(self.pylibvirt_vm(vm, options))
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/truenas_pylibvirt/domain/manager.py", line 66, in start
raise Error(f"Cannot start domain {domain.configuration.name!r}:\n{error_msg}")
truenas_pylibvirt.error.Error: Cannot start domain 'docker':
device.pci_0000_05_00_0: Device pci_0000_05_00_0 is not available
05:00.0 Non-Volatile memory controller: Intel Corporation PCIe Data Center SSD (rev 01) (prog-if 02 [NVM Express])
Subsystem: Intel Corporation Device 00e9
Flags: bus master, fast devsel, latency 0, IRQ 17, IOMMU group 2
Memory at df710000 (64-bit, non-prefetchable) [size=16K]
Expansion ROM at df700000 [disabled] [size=64K]
Capabilities: [40] Power Management version 3
Capabilities: [50] MSI-X: Enable+ Count=32 Masked-
Capabilities: [60] Express Endpoint, IntMsgNum 0
Capabilities: [100] Advanced Error Reporting
Capabilities: [150] Virtual Channel
Capabilities: [180] Power Budgeting <?>
Capabilities: [190] Alternative Routing-ID Interpretation (ARI)
Capabilities: [270] Device Serial Number 55-cd-2e-40-4b-ff-92-df
Capabilities: [2a0] Secondary PCI Express
Kernel driver in use: nvme
Kernel modules: nvme