• DPDK编译步骤


     
    大页内存分配:
     NUMA系统(现在的linux一般都是)
    1. echo 1024 >/sys/devices/system/node/node0/hugepages/hugepages-2048kB/nr_hugepages
    2. echo 1024 >/sys/devices/system/node/node1/hugepages/hugepages-2048kB/nr_hugepages
    1. [root@localhost dpdk-dst]# lscpu
    2. Architecture: x86_64
    3. CPU op-mode(s):32-bit,64-bit
    4. ByteOrder:LittleEndian
    5. CPU(s):2
    6. On-line CPU(s)list:0,1
    7. Thread(s) per core:1
    8. Core(s) per socket:2
    9. Socket(s):1
    10. NUMA node(s):1
    11. Vendor ID:GenuineIntel
    12. CPU family:6
    13. Model:61
    14. Model name:Intel(R)Core(TM) i5-5200U CPU @2.20GHz
    15. Stepping:4
    16. CPU MHz:2194.916
    17. BogoMIPS:4389.83
    18. Hypervisor vendor:VMware
    19. Virtualization type: full
    20. L1d cache:32K
    21. L1i cache:32K
    22. L2 cache:256K
    23. L3 cache:3072K
    24. NUMA node0 CPU(s):0,1
    从上面可以看到,
    1. NUMA node(s):1
    总共有一个NUMA node,注意这里的node个人理解就是具有独立内存和CPU总线的最小计算单元(每个node内部有自己的CPU总线和内存),而Core就是socket里独立的一组程序执行的硬件单元,比如寄存器,计算单元等,不单独占有内存。
     
    非NUMA系统
    1. echo 1024 >/sys/kernel/mm/hugepages/hugepages-2048kB/nr_hugepages

    大页内存的挂载
    1. mkdir /mnt/huge
    2. mount -t hugetlbfs nodev /mnt/huge
     

    1. export RTE_SDK=/home/yml/dpdk/dpdk-stable-16.07.2    //这个是你生成的编译环境的路径
    2. export RTE_TARGET=x86_64-native-linuxapp-gcc    //编译的环境变量
    3. export DESTDIR = /home/yml/dpdk/dpdk-stable-16.07.2/ //你的安装路径,就是编译出来的文件的路径

    编译
    1. make install T=$RTE_TARGET

    Loading Modules to Enable Userspace IO for DPDK 
    1. cd x86_64-native-linuxapp-gcc/
    2. sudo modprobe uio
    3. sudo insmod kmod/igb_uio.ko
    4. sudo insmod kmod/rte_kni.ko

    网卡绑定
    1. ./tools/dpdk-devbind.py --status 查询网卡状态
    1. [root@localhost tools]#./dpdk-devbind.py --status
    2. Network devices using DPDK-compatible driver
    3. ============================================
    4. 0000:02:05.0'82545EM Gigabit Ethernet Controller (Copper)' drv=ig`b_uio unused=e1000
    5. 0000:02:06.0'82545EM Gigabit Ethernet Controller (Copper)' drv=igb_uio unused=e1000
    6. Network devices using kernel driver
    7. ===================================
    8. 0000:02:01.0'82545EM Gigabit Ethernet Controller (Copper)'if=eno16777736 drv=e1000 unused=igb_uio *Active*
    9. 0000:02:07.0'82545EM Gigabit Ethernet Controller (Copper)'if=eno67109432 drv=e1000 unused=igb_uio
    10. Other network devices
    11. =====================
    12. <none>
     
    1. ./tools/dpdk-devbind.py --bind=igb_uio 02:07.0

     
     





  • 相关阅读:
    ASP.NET(C#)图片加文字、图片水印
    CMake构建Visual Studio中MFC项目的Unicode问题
    用Visual Studio 2008(VS)编译WebKit的r63513
    此时学习中
    ASP.NET进阶——初学者的提高(长期)
    继续努力
    程序员阿士顿的故事
    iOS 深拷贝和浅拷贝
    Javascript中this的取值
    Lisp的本质(The Nature of Lisp)
  • 原文地址:https://www.cnblogs.com/yml435/p/6244052.html
Copyright © 2020-2023  润新知