This section describes how to enable the SR-IOV on KVM.

To enabling the SR-IOV on KVM:

  1. Enable SR-IOV in BIOS. This will be dependent on your BIOS. Login to the BIOS console and look for SR-IOV Support/DMA. You can verify support on the prompt by checking that Intel has the correct cpu flag.
    cat /proc/cpuinfo | grep vmx
  2. Add the options on Bboot.
    GRUB_CMDLINE_LINUX="intel_iommu=on"

    (in /etc/default/grub)

    1. After this, use the Run command: update-grub and update-initramfs -u.
    2. Reboot
    3. Make sure iommu is enabled.
      velocloud@KVMperf3:~$ dmesg | grep -i IOMMU
       [ 0.000000] Command line: BOOT_IMAGE=/vmlinuz-3.13.0-107-generic root=/dev/mapper/qa--multiboot--002--vg-root ro intel_iommu=on splash quiet vt.handoff=7 
       [ 0.000000] Kernel command line: BOOT_IMAGE=/vmlinuz-3.13.0-107-generic root=/dev/mapper/qa--multiboot--002--vg-root ro intel_iommu=on splash quiet vt.handoff=7 
       [ 0.000000] Intel-IOMMU: enabled
       ….
       velocloud@KVMperf3:~$ 
  3. Add the ixgbe Driver in Linux.

    https://downloadcenter.intel.com/download/14687/Intel-Network-Adapter-Driver-for-PCIe-Intel-10-Gigabit-Ethernet-Network-Connections-Under-Linux-

    Download on left 5.2.1

    1. Download ixgbe from intel. Follow compile options.
    2. Configure ixgbe config (tar and sudo make install).

      velocloud@KVMperf1:~$ cat /etc/modprobe.d/ixgbe.conf

    3. If the file doesn’t exist, create it.
      options ixgbe max_vfs=32,32
      options ixgbe allow_unsupported_sfp=1
      options ixgbe MDD=0,0
      blacklist ixgbevf
    4. Remember to do update-initramfs -u and reboot.
    5. Use modinfo to see if it is properly installed.
      velocloud@KVMperf1:~$ modinfo ixgbe and ip link
       filename: /lib/modules/4.4.0-62-generic/updates/drivers/net/ethernet/intel/ixgbe/ixgbe.ko
       version: 5.0.4
       license: GPL
       description: Intel(R) 10GbE PCI Express Linux Network Driver
       author: Intel Corporation, <linux.nics@intel.com>
       srcversion: BA7E024DFE57A92C4F1DC93
    After rebooting, you should see the interfaces.