The SR-IOV feature has the following limitations:
An I/O domain cannot start if any associated root domain is not running.
Migration is disabled for any domain that has one or more SR-IOV physical functions or SR-IOV virtual functions assigned to it.
You can destroy only the last virtual function that was created for a physical function. So, if you create three virtual functions, the first virtual function that you can destroy must be the third one.
If an SR-IOV card is assigned to a domain by using the Direct I/O (DIO) feature, the SR-IOV feature is not enabled for that card.
The PCIe endpoint devices and SR-IOV virtual functions from a particular PCIe bus can be assigned up to a maximum of 15 domains on supported SPARC T-series servers and SPARC M-series servers. On SPARC T7 series servers and SPARC M7 series servers, you can assign PCIe endpoint devices and SR-IOV virtual functions from a particular PCIe bus to a maximum of 31 domains. On a Fujitsu M10 server you can assign PCIe endpoint devices and SR-IOV virtual functions from a particular PCIe bus to a maximum of 24 domains. The PCIe resources, such as interrupt vectors for each PCIe bus, are divided among the root domain and I/O domains. As a result, the number of devices that you can assign to a particular I/O domain is also limited. Make sure that you do not assign a large number virtual functions to the same I/O domain. There is no interrupt limitation for the SPARC T7 series servers and SPARC M7 series servers. For a description of the problems related to SR-IOV, see Oracle VM Server for SPARC 3.4 Release Notes.
The root domain is the owner of the PCIe bus and is responsible for initializing and managing the bus. The root domain must be active and running a version of the Oracle Solaris OS that supports the SR-IOV feature. Shutting down, halting, or rebooting the root domain interrupts access to the PCIe bus. When the PCIe bus is unavailable, the PCIe devices on that bus are affected and might become unavailable.
The behavior of I/O domains with PCIe SR-IOV virtual functions is unpredictable when the root domain is rebooted while those I/O domains are running. For instance, I/O domains with PCIe endpoint devices might panic during or after the reboot. Upon reboot of the root domain, you would need to manually stop and start each domain.
If the I/O domain is resilient, it can continue to operate even if the root domain that is the owner of the PCIe bus becomes unavailable. See I/O Domain Resiliency.
SPARC systems, up to and including the SPARC T5 and SPARC M6 platforms, provide a finite number of interrupts, so Oracle Solaris limits the number of interrupts that each device can use. The default limit should match the needs of a typical system configuration but you might need to adjust this value for certain system configurations. For more information, see Adjusting the Interrupt Limit.