Go to main content
Oracle® VM Server for SPARC 3.4 Administration Guide

Exit Print View

Updated: August 2016

Dynamic SR-IOV

    The dynamic SR-IOV feature removes the following static SR-IOV requirements:

  • Root domain. Initiate a delayed reconfiguration on the root domain, create or destroy a virtual function, and reboot the root domain

  • I/O domain. Stop the I/O domain, add or remove a virtual function, and start the I/O domain

With dynamic SR-IOV you can dynamically create or destroy a virtual function without having to initiate a delayed reconfiguration on the root domain. A virtual function can also be dynamically added to or removed from an I/O domain without having to stop the domain. The Logical Domains Manager communicates with the Logical Domains agent and the Oracle Solaris I/O virtualization framework to effect these changes dynamically.

Dynamic SR-IOV Software Requirements

For information about the required PCIe SR-IOV software and firmware versions, see SR-IOV Hardware and Software Requirements.

Note - If your system does not meet the dynamic SR-IOV software and firmware requirements, you must use the static SR-IOV method to perform SR-IOV-related tasks. See Static SR-IOV.

Dynamic SR-IOV Configuration Requirements

    To dynamically create or destroy a virtual function, ensure that the following conditions are met:

  • I/O virtualization has been enabled for a PCIe bus before you begin to configure virtual functions.

  • The OS that runs on the root domain and on I/O domains must be at least the Oracle Solaris 11.1 SRU 10 OS.

  • The physical function device is not configured in the OS or is in a multipathing configuration. For example, you can unplumb an Ethernet SR-IOV device or have it in an IPMP or an aggregation to successfully create or destroy a virtual function.

    An operation to create or destroy a virtual function requires that the physical function device driver toggle between the offline and online states. A multipathing configuration permits the device driver to toggle between these states.

  • The virtual function is either not in use or in a multipathing configuration before you remove a virtual function from an I/O domain. For example, you can either unplumb an Ethernet SR-IOV virtual function or not use it in an IPMP configuration.

    Note - You cannot use aggregation for Ethernet SR-IOV virtual functions because the current multipathing implementation does not support virtual functions.

Destroying All Virtual Functions and Returning the Slots to the Root Domain Does Not Restore the Root Complex Resources

Note - This section applies to servers up to and including SPARC M6 series servers and SPARC T5 series servers.

The resources on the root complex are not restored after you destroy all the virtual functions and return the slots to the root domain.

Recovery: Return all the virtual I/O resources that are associated with the root complex to their root domain.

First, put the control domain in delayed reconfiguration.

primary# ldm start-reconf primary

Return all child PCIe slots to the root domain that owns the pci_0 bus. Then, remove all of the child virtual functions on the pci_0 bus and destroy them.

Finally, set iov=off for the pci_0 bus and reboot the root domain.

primary# ldm set-io iov=off pci_0
primary# shutdown -y -g 10

Workaround: Set the iov option to off for the specific PCIe bus.

primary# ldm start-reconf primary
primary# ldm set-io iov=off pci_0