Intel DPDK配置

Intel DPDK官网:http://www.dpdk.org/

操作系统:Ubuntu14.04
DPDK版本:dpdk-2.2.0

  1. 准备
    1.1 查看网卡状态:
    ./tools/dpdk_nic_bind.py --status
    1.2 禁用网卡:
    ifconfig ethxxx down
    1.3 配置环境变量:
    export RTE_SDK=pwd
    export RTE_TARGET=x86_64-native-linuxapp-gcc
    1.4 查看大页内存状态:
    cat /proc/meminfo | grep Huge

  2. 通过setup.sh进行配置
    2.1 运行setup脚本:
    ./tools/setup.sh
    2.2 选择编译目标:
    x86_64-native-linuxapp-gcc(选[14])
    2.3 插入IGB UIO模块:
    Insert IGB UIO module(选[17])
    2.4 设置大页内存:
    Setup hugepage mappings for non-NUMA systems(选[20])
    2.5 绑定网卡:
    Bind Ethernet device to IGB UIO module(选[23])
    2.6 运行测试程序:
    Run testpmd application in interactive mode(选[27])

  3. 基于命令进行配置
    3.1 进入DPDK主目录输入:
    make install T=x86_64-native-linuxapp-gcc
    3.2 配置大内存页:
    echo 128 > /sys/kernel/mm/hugepages/hugepages-2048kB/nr_hugepages
    mkdir /mnt/huge
    mount -t hugetlbfs nodev /mnt/huge
    3.3 安装igb_uio驱动:
    modprobe uio
    insmod x86_64-native-linuxapp-gcc/kmod/igb_uio.ko
    3.4 绑定网卡:
    ./tools/dpdk_nic_bind.py -b igb_uio xxxx:xx:xx.x
    3.5 运行testpmd测试程序:
    ./x86_64-native-linuxapp-gcc/app/testpmd -c 0x3 -n 2 -- -i

  4. 错误
    4.1 Cause: Creation of mbuf pool for socket 0 failed
    肯定是hugepage分配少了

    4.2 EAL: Error reading from file descriptor
    这个bug已经由dpdk的开发人员修复,patch内容如下:

diff --git a/lib/librte_eal/linuxapp/igb_uio/igb_uio.c b/lib/librte_eal/linuxapp/igb_uio/igb_uio.c
index d1ca26e..c46a00f 100644
--- a/lib/librte_eal/linuxapp/igb_uio/igb_uio.c
+++ b/lib/librte_eal/linuxapp/igb_uio/igb_uio.c
@@ -505,14 +505,11 @@ igbuio_pci_probe(struct pci_dev *dev, const struct pci_device_id *id)
         }
         /* fall back to INTX */
     case RTE_INTR_MODE_LEGACY:
-        if (pci_intx_mask_supported(dev)) {
-            dev_dbg(&dev->dev, "using INTX");
-            udev->info.irq_flags = IRQF_SHARED;
-            udev->info.irq = dev->irq;
-            udev->mode = RTE_INTR_MODE_LEGACY;
-            break;
-        }
-        dev_notice(&dev->dev, "PCI INTX mask not supported\n");
+        dev_dbg(&dev->dev, "using INTX");
+        udev->info.irq_flags = IRQF_SHARED;
+        udev->info.irq = dev->irq;
+        udev->mode = RTE_INTR_MODE_LEGACY;
+        break;
         /* fall back to no IRQ */
     case RTE_INTR_MODE_NONE:
         udev->mode = RTE_INTR_MODE_NONE;
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值