close

最近做side project時需要在具有SRIOV的VM中用DPDK環境來寫程式

 

以前都用intel X540、X520跟X710網路卡但自己家用的是Mellanox Connectx-3 10G網卡環境設定步驟不一樣

試錯幾次後終於成功了

這邊紀錄一下

螢幕快照 2019-02-26 上午1.22.59.png

螢幕快照 2019-02-26 上午1.20.47.png

首先,先去mellanox官網下載OFED驅動安裝檔案

 

掛載之後執行

./mlnxofedinstall --guest --dpdk --upstream-libs

完成安裝後再輸入

/etc/init.d/openibd restart

重啟服務

然後再去下載DPDK soruce code

記得去dpdk-18.11/x86_64-native-linuxapp-gcc/

裡面的.config修改

pmd driver參數成y

螢幕快照 2019-02-26 上午1.11.57.png

接著設定環境變數

export RTE_SDK=/root/dpdk-18.11
export RTE_TARGET=x86_64-native-linuxapp-gcc

開始compile

在dpdk source code主目錄下

make install T=x86_64-native-linuxapp-gcc

安裝完會出現安裝目標路徑沒設不用理他  因為現在新的版本已經不用再設定路徑了

這時可以設定VF綁定DPDK driver

輸入

modprobe -a ib_uverbs mlx4_en mlx4_core mlx4_ib

掛載 kernel module

接著重啟服務
/etc/init.d/openibd restart

然後開始綁定
ls -d /sys/class/net/*/device/infiniband_verbs/uverbs* | cut -d / -f 5
{
    for intf in ens8 ens10;
    do
        (cd "/sys/class/net/${intf}/device/" && pwd -P);
    done;
} |
sed -n 's,.*/\(.*\),-w \1,p'

ens8跟ens10要代換成VM中要綁定的網路介面名稱

(註:這邊跟intel網卡的綁定方式不一樣,不能用dpdk提供的網路介面綁定工具)

 

最後掛上大分頁

在/boot/grub2/grub.cfg中kernel cmdline後面加上default_hugepagesz=1G hugepagesz=1G hugepages=4

(這邊要算一下  大致上就是hugepage size * page 數量等於總memory)

(如果是uefi開機那檔案位置在/boot/efi/EFI/centos/grub.cfg)

在/etc/fstab中掛載

1GB分頁

nodev /mnt/huge_1GB hugetlbfs pagesize=1GB 0 0

2MB分頁

nodev /mnt/huge hugetlbfs defaults 0 0

然後重開機

記得每次重啟都要設定環境變數,或是寫到bashrc裡面
export RTE_SDK=/root/dpdk-18.11
export RTE_TARGET=x86_64-native-linuxapp-gcc

 

ref:

https://doc.dpdk.org/guides/linux_gsg/sys_reqs.html

https://doc.dpdk.org/guides/linux_gsg/build_dpdk.html

https://doc.dpdk.org/guides/nics/mlx4.html

 

 

arrow
arrow

    w180112 發表在 痞客邦 留言(0) 人氣()