DPDK Programmer’s Guide(4)Service Cores

官方文档查看地址:
http://doc.dpdk.org/guides/prog_guide/service_cores.html
PDF下载地址:
https://www.intel.com/content/www/us/en/embedded/technology/packet-processing/dpdk/dpdk-programmers-guide.html

本篇难度系数:
翻译:☆☆☆☆☆
理解:★★☆☆☆

4.服务核心

DPDK有一个称为服务核心的概念,它支持在DPDK lcore上执行工作的动态方式。服务核心支持构建在EAL中,并且提供了一个API,允许应用程序在运行时控制如何使用服务核心。

服务核心概念由服务(DPDK的组件,需要CPU周期才能运行)和服务核心(DPDK lcore,负责运行服务)组成。服务核心概念的强大之处在于,可以配置服务核心和服务之间的映射,以抽象平台和环境之间的差异。

例如,Eventdev有硬件和软件PMDs。其中,软件PMD需要一个lcore来执行调度操作,而硬件PMD不需要。对于服务核心,应用程序不会直接注意到调度是在软件中完成的。有关服务核心API的详细信息,请参阅文档。

4.1核心服务初始化

在DPDK应用程序中使用服务核心有两种方法,一种是使用服务coremask,另一种是使用API动态添加核心。这两种方法中比较简单的一种是将-s coremask参数传递给EAL,它将接受主DPDK coremask中可用的任何核心,如果这些位也在服务coremask中设置,那么这些核心将成为服务核心,而不是DPDK应用程序lcore

4.2在核心上启用服务

每个已注册的服务都可以单独映射到一个服务核心,或一组服务核心。在特定的核心上启用服务意味着所涉及的lcore将运行该服务。禁用该服务上的核心将停止所涉及的lcore运行该服务。使用此方法,可以为每个服务内核分配特定的工作负载,并将N个工作负载映射到M个服务内核。每个服务lcore循环遍历为该核心启用的服务,并调用函数来运行服务。

4.3服务核心数据统计

服务核心库能够收集运行时统计信息,比如对特定服务的调用数量和服务使用的周期数量。循环计数集合是动态可配置的,允许任何应用程序在任何时候对系统上运行的服务进行概要分析。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章