博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
DPDK编程指南-4(服务核)
阅读量:4055 次
发布时间:2019-05-25

本文共 754 字,大约阅读时间需要 2 分钟。

4. 服务核

DPDK有一个称为服务核的概念,它可以动态地在DPDK逻辑核(lcore)上执行工作。 服务核的支持内置于EAL中,并提供API可选择地允许应用程序控制服务核在运行时的使用方式。

服务核概念是由服务(DPDK的组件,需要CPU周期来运行)和服务核(DPDK 逻辑核,负责运行服务)构建的。服务核概念的强大之处在于服务核和服务之间的映射可以配置为抽象化平台和环境之间的差异。

例如,Eventdev具有硬件和软件PMD。 其中,软件PMD需要lcore来执行调度操作,而硬件PMD则不需要。 对于服务核,应用程序不会直接注意到调度是在软件中完成的。

详细信息请参考服务核API的文档。

4.1. 服务核初始化

在DPDK应用程序中有两种方法可以使用服务核,使用服务核掩码,或者使用API动态添加cores。 两者中较简单的方法是将-s coremask参数传递给EAL,它将使用主DPDK核掩码中的任何cores,如果这些位也在服务核掩码中设置,则这些cores将成为服务核而不是DPDK应用程序cores。

4.2. 在Cores上使能服务

每个已注册的服务可以单独映射到一个服务核,或一组服务核上。在特定core上启用服务意味着lcore将运行该服务。 禁用该core的服务也会阻止lcore运行该服务。

使用此方法,可以将特定工作负载分配给每个服务核,并将N个工作负载映射到M个服务核。 每个服务lcore循环遍历该core上启用的服务,并调用函数来运行该服务。

!注意:lcore可以理解为DPDK中的一个任务线程

4.3. 服务核统计

服务核库能够收集运行时统计信息,例如对特定服务的调用次数以及服务使用的周期数。 循环计数集合是动态可配置的,允许任何应用程序随时分析系统上运行的服务。

转载地址:http://ldqci.baihongyu.com/

你可能感兴趣的文章
Django objects.all()、objects.get()与objects.filter()之间的区别介绍
查看>>
python:如何将excel文件转化成CSV格式
查看>>
机器学习实战之决策树(一)
查看>>
机器学习实战之决策树二
查看>>
[LeetCode By Python]7 Reverse Integer
查看>>
[LeetCode By Python]121. Best Time to Buy and Sell Stock
查看>>
[LeetCode By Python]136. Single Number
查看>>
Android/Linux 内存监视
查看>>
Android2.1消息应用(Messaging)源码学习笔记
查看>>
iphone开发之SDK研究(待续)
查看>>
计算机网络复习要点
查看>>
Variable property attributes or Modifiers in iOS
查看>>
NSNotificationCenter 用法总结
查看>>
C primer plus 基础总结(一)
查看>>
剑指offer算法题分析与整理(三)
查看>>
mint/ubuntu安装搜狗输入法
查看>>
C++动态申请数组和参数传递问题
查看>>
opencv学习——在MFC中读取和显示图像
查看>>
JVM并发机制探讨—内存模型、内存可见性和指令重排序
查看>>
nginx+tomcat+memcached (msm)实现 session同步复制
查看>>