On 4/17/2024 4:51 PM, Keith Busch wrote:
On Wed, Apr 17, 2024 at 01:15:42PM -0700, Paul M Stillwell Jr wrote:
+=================================================================
+Linux Base Driver for the Intel(R) Volume Management Device (VMD)
+=================================================================
+
+Intel vmd Linux driver.
+
+Contents
+========
+
+- Overview
+- Features
+- Limitations
+
+The Intel VMD provides the means to provide volume management across separate
+PCI Express HBAs and SSDs without requiring operating system support or
+communication between drivers. It does this by obscuring each storage
+controller from the OS, but allowing a single driver to be loaded that would
+control each storage controller. A Volume Management Device (VMD) provides a
+single device for a single storage driver. The VMD resides in the IIO root
+complex and it appears to the OS as a root bus integrated endpoint. In the IIO,
+the VMD is in a central location to manipulate access to storage devices which
+may be attached directly to the IIO or indirectly through the PCH. Instead of
+allowing individual storage devices to be detected by the OS and allow it to
+load a separate driver instance for each, the VMD provides configuration
+settings to allow specific devices and root ports on the root bus to be
+invisible to the OS.
This doesn't really capture how the vmd driver works here, though. The
linux driver doesn't control or hide any devices connected to it; it
just creates a host bridge to its PCI domain, then exposes everything to
the rest of the OS for other drivers to bind to individual device
instances that the pci bus driver finds. Everything functions much the
same as if VMD was disabled.
I was trying more to provide an overview of how the VMD device itself
works here and not the driver. The driver is fairly simple; it's how the
device works that seems to confuse people :).
Do you have a suggestion on what you would like to see here?
Paul