vmd
— Intel Volume
Management Device driver
To compile this driver into the kernel, place the following lines
in your kernel configuration file:
device vmd
Alternatively, to load the driver as a module at boot time, place
the following line in
loader.conf(5):
This driver attaches to Intel VMD devices, representing them as
PCI-to-PCI bridges and providing access to children PCI devices via new PCI
domains. Intel VMD is used by Intel's VROC (Virtual RAID on chip) to manage
NVMe drives.
The following tunables are settable via
loader(8)
or
sysctl(8):
- hw.vmd.bypass_msi
- By default all VMD devices remap children MSI/MSI-X interrupts into their
own. It creates additional isolation, but also complicates things due to
sharing, etc. Fortunately some VMD devices can bypass the remapping.
Defaults to 1.
- hw.vmd.max_msi
- Limits number of Message Signaled Interrupt (MSI) vectors allowed to each
child device. VMD can't distinguish MSI vectors of the same device, so
there are no benefits to have more than one, unless it is required by
specific device driver. Defaults to 1.
- hw.vmd.max_msix
- Limits number of Extended Message Signaled Interrupt (MSI-X) vectors
allowed to each child device. VMD has limited number of interrupt vectors
to map children interrupts into, so to avoid/reduce sharing children
devices/drivers need to be constrained. Defaults to 3.
The vmd
driver first appeared in
FreeBSD 13.0.