
DPDK
文章平均质量分 91
尚先生的博客
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
DPDK — 数据平台优化技术
目录文章目录目录 DPDK 优化技术 DPDK 性能影响因素 硬件结构的影响 OS 版本及其内核的影响 OVS 性能问题 内存管理 CPU 核间无锁通信 设置正确的目标 CPU 类型与模式 优化方案 应用 NUMA 亲和性技术减少跨 NUMA 内存访问 应用 CPU 绑核技术减少上下文切换损耗 应用大页内存技术减少 TLB miss DPDK 优化技术DPDK 优化技术指在 DPDK 应用过程中,为进一步提高各类用转载 2022-03-29 20:12:55 · 771 阅读 · 0 评论 -
DPDK 命令行
一:利用DPDK,给程序添加命令行代码,添加一个命令由四部分组成:1. 命令行初始化2. 命令行解析3. 命令行参数的数据结构4. 命令行的功能实现函数源码 dpdk-18.08/examples/cmdline 中提供了一个完整的 Demo 可以供参考一些结构体和变量 需要详细的可以看 源码Demo可以 在主lcore上从main调用,启动命令行的线程/* 启动命令行线程 */if (rte_ctrl_thread_create(&telnet_thread, "s转载 2022-03-29 20:07:22 · 603 阅读 · 0 评论 -
DPDK — 数据平面开发技术
目录文章目录目录 DPDK 完全内核旁路技术实现 DPDK 实现原理 DPDK 架构 UIO,DPDK 的基石 PMD,DPDK 的核心优化 IGB_UIO KNI 核心部件库 核心部件库对应的 DPDK 核心组件实现 平台相关模块 几个关键 API 的使用举例 DPDK 完全内核旁路技术实现DPDK 技术分为基本技术和优化技术两类。其中,前者指标准的 DPDK 数据平面开发包和 I/O 转发实现技术。DPDK 实现原理转载 2022-03-29 20:02:05 · 2069 阅读 · 0 评论 -
DPDK源码学习之 LPM路由匹配算法
目录1. 初衷2. LPM设计原理概要3. LPM路由查找算法 3.1 LPM相关的数据结构 3.1.1 tbl24数据结构 3.1.2tbl8数据结构 3.1.3 LPM数据结构 3.1.4 数据结构之间的关系 3.2 LPM结构的创建 3.2 LPM 添加路由 3.2.1 rule_add ...转载 2022-03-27 16:15:50 · 886 阅读 · 1 评论 -
Linux 内核:匠心独运之无锁环形队列kfifo
Kernel version Linux 2.6.12 Author Toney Email vip_13031075266@163.com Date 2020.11.8 目录Linux 内核:匠心独运之无锁环形队列1. 前言2. Kfifo简介3. Kfifo初始化3.1 判断一个数是否为2的幂次方3.2 求不小于某个数2的整数次幂3.3 为什么要求2的幂次方呢?4. Kfifo入队和出队4.1 K转载 2022-03-27 14:17:13 · 3519 阅读 · 2 评论 -
DPDK 无锁队列Ring Library原理
参考自DPDK官方文档原文:http://doc.dpdk.org/guides-20.02/prog_guide/ring_lib.html针对自己的理解做了一些辅助解释。1 前置知识1.1 CAS学习无锁队列前先看一个基本概念,CAS原子指令操作。CAS(Compare and Swap,比较并替换)原子指令,用来保障数据的一致性。指令有三个参数,当前内存值V、旧的预期值A、更新的值B,当且仅当预期值A和内存值V相同时,将内存值修改为B并返回true,否则什么都不做,并...转载 2022-03-25 14:22:54 · 859 阅读 · 0 评论 -
NUMA体系结构详解
由于OpenStack Kilo增加很多针对NUMA体系结构的增强功能,所以又重新温习了下NUMA相关的知识,简单做个笔记。 1. NUMA的几个概念(Node,socket,core,thread) 对于socket,core和thread会有不少文章介绍,这里简单说一下,具体参见下图: 一句话总结:socket就是主板上的CPU插槽; Core就是socket里独立的一组程序执行的硬件单元,比如寄存器,计算单元等; Thread:就是超线程hyperthread的概念...转载 2021-12-27 22:25:08 · 842 阅读 · 0 评论 -
DPDK内存篇(四):18.11及早期版本
作者简介Anatoly Burakov: 英特尔软件工程师,目前维护DPDK中的VFIO和内存子系统。导读这是有关DPDK内存管理功能系列文章的最后一篇,之前的文章集中于介绍DPDK内存管理背后的一般概念,从而深入概述了各种输入输出虚拟地址(IOVA)相关选项,并描述了DPDK 17.11中与内存相关的功能,本文涵盖了有关DPDK内存管理的所有最新的和最重要的知识。DPDK 18.11版本是长期支持的发行版本,其内存管理功能是在18.05和18. 08发行周期内重做DPDK内存子系统所完成的转载 2021-12-26 15:17:23 · 604 阅读 · 0 评论 -
DPDK内存篇(三):17.11及早期版本
导读这是关于数据面开发套件(DPDK)内存管理功能系列文章的第三篇。本系列的第一篇文章描述了DPDK基础的基本概念。第二篇文章深入介绍了输入输出虚拟地址(IOVA)和适用于所有DPDK版本的内核驱动程序。本文概述了DPDK版本中可用的内存管理工具,包括17.11版本。DPDK17.11是(目前)仍然支持的最早的长期支持(LTS)版本。因此,描述DPDK 17.11提供的内存管理功能不仅为DPDK内存管理功能的发展提供了宝贵的历史视角,而且对许多使用这些较旧但仍受支持的版本的DPDK消费者有所帮助。转载 2021-12-26 14:59:04 · 752 阅读 · 0 评论 -
DPDK内存篇(二): 深入学习 IOVA
作者简介Anatoly Burakov:英特尔软件工程师,目前在维护DPDK中的VFIO和内存子系统。引言上一篇中,我们介绍了数据平面开发工具包(DPDK)内存管理背后的主要概念和原理,也探讨了它们对DPDK拥有绝佳性能所做出的贡献。但是,DPDK远比这些概念与原理复杂,需要正确配置才能充分的利用系统的潜力。而其中,选择正确的内核驱动和IOVA模式可能是最为关键的,但这也取决于要运行的应用及其运行前的环境。本文将介绍可选的几种不同配置选项,并为读者日后的选择提供建议。 环境抽象层(E..转载 2021-12-26 14:38:08 · 1632 阅读 · 1 评论 -
DPDK内存篇(一): 基本概念
引言内存管理是数据面开发套件(DPDK)的一个核心部分,以此为基础,DPDK的其他部分和用户应用得以发挥其最佳性能。本系列文章将详细介绍DPDK提供的各种内存管理的功能。但在此之前,有必要先谈一谈为何DPDK中内存管理要以现有的方式运作,它背后又有怎样的原理,再进一步探讨DPDK具体能够提供哪些与内存相关的功能。本文将先介绍DPDK内存的基本原理,并解释它们是如何帮助DPDK实现高性能的。请注意,虽然DPDK支持FreeBSD,而且也会有正在运行的Windows端口,但目前大多数与内存相关的功能转载 2021-12-26 13:36:45 · 897 阅读 · 0 评论