zoukankan      html  css  js  c++  java
  • dpdk快速编译使用

    QuickStart

    环境

    dpdk: dpdk-17.11
    

    运行前配置

    配置系统HugePages

    #mkdir /mnt/huge_1GB/
    #vim /etc/fstab
    nodev                /mnt/huge_1GB   hugetlbfs       defaults        0 0
    
    #vim /etc/default/grub
    default_hugepagesz=1G hugepagesz=1G hugepages=4"
    #grub2-mkconfig -o /boot/grub2/grub.cfg
    #reboot
    
    #cat /proc/meminfo  | grep Hug
    AnonHugePages:     88064 kB
    HugePages_Total:       4
    HugePages_Free:        4
    HugePages_Rsvd:        0
    HugePages_Surp:        0
    Hugepagesize:    1048576 kB
    

    加载uio驱动

    #modprobe uio_pci_generic
    #modprobe uio
    
    #lsmod  | grep uio
    uio_pci_generic        16384  0
    uio                    20480  1 uio_pci_generic
    

    build dpdk

    #cd /data/sandbox/dpdk-17.11
    #make install  T=x86_64-native-linuxapp-gcc
    或者指定目录:
    #make install  T=x86_64-native-linuxapp-gcc DESTDIR=/opt/dpdk
    
    #cd x86_64-native-linuxapp-gcc/
    

    绑定网卡到uio驱动

    • dpdk的应用程序要使用某块网卡是,需要使用tools/pci_unbind.py将网卡绑定到驱动uio_pci_generic
    • 在dpdk对网卡的称呼是port, 就是网口。

    先把eth0 设备down掉,才能,将eth0绑定成功

    #ifdown eth0
    
    #ethtool -i eth1
    driver: igb
    

    将eth0网卡绑定到uio驱动:

    #python usertools/dpdk-devbind.py --bind=uio_pci_generic eth0  //eth0绑定到驱动uio_pci_generic
    

    使用 usertools/dpdk-devbind.py 查看网卡状态:

    [root@jiangyi02.xxx /data/sandbox/dpdk-17.11]
    #python usertools/dpdk-devbind.py --status
    
    Network devices using DPDK-compatible driver
    ============================================
    0000:01:00.0 '82580 Gigabit Network Connection 150e' drv=uio_pci_generic unused=
    
    Network devices using kernel driver
    ===================================
    0000:01:00.1 '82580 Gigabit Network Connection 150e' if=eth1 drv=igb unused=uio_pci_generic
    0000:06:00.0 '82599ES 10-Gigabit SFI/SFP+ Network Connection 10fb' if=ens6f0 drv=ixgbe unused=uio_pci_generic
    0000:06:00.1 '82599ES 10-Gigabit SFI/SFP+ Network Connection 10fb' if=ens6f1 drv=ixgbe unused=uio_pci_generic
    
    

    编译一个简单的DPDK程序

    编译之前,首先,声明环境变量: RTE_SDK RTE_TARGET

    其中RTE_SDK是DPDK的安装目录,RTE_TARGET是DPDK目标环境目录。

    [root@jiangyi02.xxx /data/sandbox/dpdk-17.11]
    #export RTE_SDK=/data/sandbox/dpdk-17.11
    
    [root@jiangyi02.xxx /data/sandbox/dpdk-17.11]
    #export RTE_TARGET=x86_64-native-linuxapp-gcc
    

    在examples目录里面编译一个简单的应用:

    cd examples/helloworld/
    make
    
    [root@jiangyi02.xxx /data/sandbox/dpdk-17.11/examples/helloworld/build]
    #./helloworld
    EAL: Detected 24 lcore(s)
    EAL: Probing VFIO support...
    EAL: PCI device 0000:01:00.0 on NUMA socket 0
    EAL:   probe driver: 8086:150e net_e1000_igb
    EAL: PCI device 0000:01:00.1 on NUMA socket 0
    EAL:   probe driver: 8086:150e net_e1000_igb
    EAL: PCI device 0000:06:00.0 on NUMA socket 0
    EAL:   probe driver: 8086:10fb net_ixgbe
    EAL: PCI device 0000:06:00.1 on NUMA socket 0
    EAL:   probe driver: 8086:10fb net_ixgbe
    hello from core 1
    hello from core 2
    hello from core 3
    hello from core 4
    hello from core 5
    hello from core 6
    hello from core 7
    hello from core 8
    hello from core 9
    hello from core 10
    hello from core 11
    hello from core 12
    hello from core 13
    hello from core 14
    hello from core 15
    hello from core 16
    hello from core 17
    hello from core 18
    hello from core 19
    hello from core 20
    hello from core 21
    hello from core 22
    hello from core 23
    hello from core 0
    

    Docs

    http://doc.dpdk.org/guides/linux_gsg/index.html

    https://www.jianshu.com/p/dcb6ccc83ea5

  • 相关阅读:
    [转载自 文顶顶]iOS开发UI篇—程序启动原理和UIApplication
    中专生自学Android到找到工作的前前后后
    HashCode与IEqualityComparer接口
    abp vnext使用记录之微服务
    asp.net core 外部认证多站点模式实现
    xamarin.android 绑定百度地图SDK遇到的问题
    asp.net core 之多语言国际化自定义资源文件
    asp.net core tags 扩展之 id 和 name
    asp.net 后台任务作业框架收集
    向量
  • 原文地址:https://www.cnblogs.com/muahao/p/10826461.html
Copyright © 2011-2022 走看看