DPDK-helloworld实例分析

【环境】

         VMware12 pro 、DPDK-16.04、Ubuntu14.04

【程序流程】

        1.启动初始运行环境,初始EAL
        2.遍历可用lcore并调用lcore_hello函数
        3.执行结束  

【运行指令】

        1.进入DPDK目录

         cd dpdk-<version>

        2.设置运行环境
         export RTE_SDK=/home/wwr/dpdk-16.04(设置dpdk路径,请根据实际情况而定)
         export RTE_TARGET=x86_64-native-linuxapp-gcc

       3.编译
         make

       4.运行参数

         ./build/helloworld -c COREMASK -n NUM

【参数解析】

          coremask:十六进制掩码表示分配的逻辑内核
          num:内存通道数

【运行截图】


PS: 3是十六进制 11表示使用lcore0和lcore1

       lcore0默认是主线程,lcore1是从属线程。

       helloworld先在从线程运行hello函数,最后在主线程运行hello函数,所以顺序为hello from core 1、hello from core 0


PS: f是十六进制 1111表示使用lcore0、lcore1、lcore2、lcore3

       lcore0默认是主线程,lcore1、lcore2、lcore3是从属线程。

       helloworld先在从线程运行hello函数,最后在主线程运行hello函数,所以顺序为1、2、3、0



PS:可以指定lcore1为主线程,所以顺序为0、2、3、1


【源码分析】


PS:

     1.rte_eal_init( )解析入口参数,保存为DPDK运行的系统信息,主要功能包括:
     配置初始化、内存初始化、内存池初始化、队列初始化、告警初始化、中断初始化、PCI初始化、定时器初始化等
     2.rte_eal_remote_launch( int(*f)(void *),void *arg,unsigned slave_id);
       第一个参数:被征召的线程
      第二个参数:传给从线程的参数
      第三个参数:指定逻辑核


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值