要支持sriov功能泻仙,首先需要硬件支持糕再,主板和cpu需要支持iommu,vt-d
pci設(shè)備需要支持sriov,本人按intel給的芯片列表淘了張F(tuán)ujitsu 82576NS網(wǎng)卡
1. 先打開bios中的vt-d功能
2.確定編譯內(nèi)核支持IOMMU功能和vfio支持(略)
3.重啟系統(tǒng)玉转,kernel.. root=...啟動(dòng)參數(shù)后面加入:? intel_iommu=on
4.確認(rèn)系統(tǒng)是否已支持iommu:? #dmesg | grep -e DMAR -e IOMMU
應(yīng)該能找到: DMAR: IOMMU enabled
5. 加載vfio:
#modprobe vfio
#modprobe vfio-pci
6.檢查是否已經(jīng)加載igb驅(qū)動(dòng)
#lsmod | grep -i igb
7.獲取對(duì)應(yīng)設(shè)備號(hào)
#lspci -D | grep 82576
7.產(chǎn)生2個(gè)vf
# echo 2 > /sys/class/net/eth1/device/sriov_numvfs
如果要?jiǎng)h除vf突想,如上寫入0即可
這里遇到一個(gè)坑,一直報(bào)echo: write error: Cannot allocate memory
后來在內(nèi)核啟動(dòng)時(shí)加了個(gè)參數(shù)pci=assign-busses搞定究抓,具體可見:
https://bugzilla.redhat.com/show_bug.cgi?id=1223376
另一個(gè)坑猾担,內(nèi)核參數(shù) pcie_acs_override=downstream
最后還是沒成功,后面再調(diào)