qemu中sriov试验

要支持sriov功能,首先需要硬件支持,主板和cpu需要支持iommu,vt-d
pci设备需要支持sriov,本人按intel给的芯片列表淘了张Fujitsu 82576NS网卡

1. 先打开bios中的vt-d功能

2.确定编译内核支持IOMMU功能和vfio支持(略)

3.重启系统,kernel.. root=...启动参数后面加入:  intel_iommu=on

4.确认系统是否已支持iommu:  #dmesg | grep -e DMAR -e IOMMU

应该能找到: DMAR: IOMMU enabled

5. 加载vfio:
#modprobe vfio
#modprobe vfio-pci

6.检查是否已经加载igb驱动
#lsmod | grep -i igb

7.获取对应设备号
#lspci -D | grep 82576

7.产生2个vf
# echo 2 > /sys/class/net/eth1/device/sriov_numvfs
如果要删除vf,如上写入0即可

这里遇到一个坑,一直报echo: write error: Cannot allocate memory
后来在内核启动时加了个参数pci=assign-busses搞定,具体可见:
https://bugzilla.redhat.com/show_bug.cgi?id=1223376

另一个坑,内核参数 pcie_acs_override=downstream

最后还是没成功,后面再调

你可能感兴趣的:(qemu中sriov试验)