DPDK服务核心(coremask)

目录

服务核心

服务核心初始化

在核心上启用服务

服务核心统计


服务核心

DPDK具有称为服务核心的概念,该概念允许动态地在DPDK lcore上执行工作。EAL中内置了服务核心支持,并且提供了一个API,以选择性地允许应用程序控制运行时如何使用服务核心。

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

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

有关服务核心API的详细信息,请参阅文档。

服务核心初始化

在DPDK应用程序中有两种方法可以使用服务核心,一种是使用服务核心掩码,另一种是使用API​​动态添加核心两者中最简单的是将-s coremask参数传递给EAL,这将采用主DPDK coremask中可用的任何内核,并且如果在服务coremask中也设置了这些位,则这些内核将成为服务内核,而不是DPDK应用程序lcores。 。

在核心上启用服务

每个注册的服务可以单独映射到一个服务核心或一组服务核心。在特定内核上启用服务意味着所讨论的lcore将运行该服务。在服务上禁用该内核将阻止所讨论的lcore运行该服务。

使用此方法,可以为每个服务核心分配特定的工作负载,并将N个工作负载映射到M个服务核心。每个服务lcore都会循环为该内核启用的服务,并调用该函数以运行该服务。

服务核心统计

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

已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 酷酷鲨 设计师:CSDN官方博客 返回首页