
【DPDK生态】
包括但不局限与DPDK-intel数据面加速工具,描述了整个生态
rtoax
学习使我快乐,我希望世界和平!
-
原创 DPDK 20.05 | rte_pci_bus思维导图 | 第一版
rte_pci_bus结构如下:struct rte_pci_bus rte_pci_bus = { .bus = { .scan = rte_pci_scan, .probe = pci_probe, .find_device = pci_find_device, .plug = pci_plug, .unplug = pci_unplug, .parse = pci_parse, .dma_map = pci_dma_map, .dma_unmap = p...2020-11-21 18:03:3565
0
-
翻译 在多线程数据平面开发套件(DPDK)应用程序中优化内存使用
目录介绍参考申请环与堆叠从环形内存池转移到堆栈内存池所需的代码更改测试方法结果结论关于作者资源资源尾注介绍高速数据包处理应用程序可能会占用大量资源。软件工程师和架构师可以提高其应用程序性能的一种方法是,将其数据包处理管道划分为多个线程。但是,这可能导致对缓存和内存资源的压力增加。因此,保持应用程序的内存占用量相对于数据平面流量尽可能小是制作高性能应用程序的关键。本文提供了一种优化多线程数据包处理应用程序的内存使用的技术,该技术应提高内存绑定应用程序的性能.2020-11-18 16:16:0076
0
-
翻译 PMDK介绍
PMDK 的全称是 Persistent Memory Development Kit,它包含了 Intel 开发的一系列旨在 方便非易失性内存的应用开发的函数库和工具。PMDK 是一个还在快速发展变化的新鲜事物,不过版本的迭代更新等很多信息都可以公开看到[1]。需要注意的是,PMDK 的网站入口[2] 和 Git 仓库的入口[3]不是严格的一一对应关系。实际上,PMDK 的 Git 仓库 [3] 中包含了 libpmem、libvmem、libpmemblk、libpmemlog、libpmemobj2020-11-14 18:36:1493
0
-
转载 持久内存开发套件(Persistent Memory Development Kit-PMDK) - pmem.io: PMDK
目录libpmemobjlibpmemblklibpmemloglibpmemlibpmem2libvmemlibvmmalloclibpmempoolpmempoollibrpmemlibrpmalibpmemsetlibvmemcachedaxiopmreorderPMDK转换C ++绑定pmemkv持久内存开发套件(pmdk) - pmem.io:PMDK永久性存储器开发套件https://pmem.io/pmdk/.2020-11-14 18:25:4678
0
-
转载 使用持久内存开发工具包 (PMDK) 创建持久内存感知队列
《使用持久内存开发工具包 (PMDK) 创建持久内存感知队列》目录简介libpmemobj 中的 C++ 支持libpmemobj 核心概念使用 C++ 绑定实施队列设计决策构建指令总结关于作者简介文将介绍如何使用链表和持久内存开发工具包 (PMDK)libpmemobj 库的 C++ 绑定实施持久内存 (PMEM) 感知队列。队列是 一种先进先出 (FIFO) 数据结构,支持推送和弹出操作。在推动操作中,新元素将添加到队列的尾部。在弹出操作...2020-11-14 18:11:2954
0
-
转载 DPDK内存篇(三): 标准大页、NUMA、DMA、IOMMU、IOVA、内存池
作者简介:Anatoly Burakov,英特尔软件工程师,目前在维护DPDK中的VFIO和内存子系统。目录引言标准大页将内存固定到NUMA节点硬件、物理地址和直接内存存取(DMA)IOMMU和IOVA内存分配和管理内存池结论推荐阅读系列文章引言内存管理是数据面开发套件(DPDK)的一个核心部分,以此为基础,DPDK的其他部分和用户应用得以发挥其最佳性能。本系列文章将详细介绍DPDK提供的各种内存管理的功能。但在此之前,有必要先谈一谈为何DP..2020-11-14 17:39:45131
0
-
原创 DPDK内存篇(二): 深入学习 IOVA
Anatoly Burakov:英特尔软件工程师,目前在维护DPDK中的VFIO和内存子系统。“文章转载自DPDK与SPDK开源社区公众号”目录引言环境抽象层(EAL)参数IO虚拟地址(IOVA)模式作为物理地址(PA)的IOVA模式作为虚拟地址(VA)的IOVA模式IOVA模式的选择IOVA模式和DPDK PCI驱动程序用户空间IO(UIO)驱动程序VFIO内核驱动程序内核驱动程序的选择软件轮询模式驱动程序(PMD)总结推荐阅读系列文章.2020-11-08 14:32:0881
0
-
原创 F-Stack Development Guide
F-Stack Development GuideWith the rapid development of Network Interface Cards the poor performance of data packet processing with the Linux kernel has become the bottleneck in modern network systems. Yet, the increasing demands of the Internet’s growth d2020-08-13 18:48:01104
0
-
原创 F-Stack实现UDP服务端、客户端,并进行吞吐量测试的实现
Table of Contents怎么个加速法?我的网络拓扑开始编码服务端server.ccommon.hMakefile配置文件server.ini客户端代码client.ccommon.hcommon.cMakefile运行结果最近在做DPDK相关的网口加速的内容,开始采用DPDK+VPP的方式,但鉴于VPP的部署需要花费一定的时间,遂采用F-Stack,关于F-Stack,本文不做介绍,只说明它是腾讯开发的。鉴于“一图胜过千言”,本文将以2020-07-17 21:02:25675
7
-
转载 Setup the FD.io Repository - Centos 7
目录Update the OSPackage Cloud RepositoryInstall VPP RPMsStarting VPPUninstall the VPP RPMsUpdate the OSBefore starting the repository setup, it is a good idea to first update and upgrade the OS; run the following commands to update the OS and2020-07-06 09:05:21140
0
-
原创 FD.io VPP官方邮件列表
https://www.mail-archive.com/vpp-dev@lists.fd.io/邮件内容更新截至2020年9月21日17:23:47Messages by Thread[vpp-dev] Does VPP timestamp every packet coming and and going out?Solis JR, M. (Mauricio) via lists.fd.io Re: [vpp-dev] In the host stack, TCP cannot rece.2020-09-21 17:30:5286
3
-
翻译 在英特尔架构服务器上构建基于矢量包处理(VPP)的快速网络协议栈
在英特尔®架构服务器上使用矢量包处理(VPP)构建快速的网络栈Build a Fast Network Stack with Vector Packet Processing (VPP) on an Intel® Architecture Server目录Build a Fast Network Stack with Vector Packet Processing (VPP) on an Intel® Architecture ServerIntroductionVector Pack2020-08-31 17:42:07304
2
-
转载 CentOS通过yum安装高版本gcc
目录一、问题二、解决方案三、devtoolset对应gcc的版本四、安装五、激活gcc版本一、问题在某些应用场景中,需要高版本的gcc支持,编译gcc耗时耗力,这里介绍一种简便的方法。二、解决方案红帽官方Developer Toolset文档地址:https://access.redhat.com/documentation/en-us/red_hat_developer_toolset/8/用红帽官方提供的开发工具包来管理gcc版本,可以做到多版本并存,随时切换,还不2020-08-19 09:15:21674
1
-
转载 FD.io VPP配置文件详解
目录VPP Configuration File - ‘startup.conf’IntroductionCommand-line ArgumentsConfiguration FileConfiguration ParametersList of Basic Parameters:List of Advanced Parameters:“unix” Parameters“dpdk” Parameters“cpu” Parameters“acl-plugin” P2020-08-17 15:32:311140
0
-
原创 DPDK跟踪库:trace library
DPDK笔记 DPDK 跟踪库RToax2020年9月跟踪库1. 总览跟踪是一种用于了解正在运行的软件系统中发生了什么的技术。用于跟踪的软件称为跟踪器,从概念上讲它类似于磁带记录器。记录时,放置在软件源代码中的特定检测点会生成事件,这些事件将保存在巨型磁带上:跟踪文件。然后,可以稍后在跟踪查看器中打开跟踪文件,以使用时间戳和多核视图来可视化和分析跟踪事件。这种机制对于解决诸如多核同步问题,等待时间测量,找出诸如CPU空闲时间之类的后分析信息之类的广泛问题非常有用,否则这些问题将极具挑战2020-09-21 18:35:52114
2
-
原创 FD.io VPP 20.05 官方文档 总目录:用户文档+开发文档+命令行
https://docs.fd.io/vpp/20.05/index.htmlVector Packet ProcessingFD.io VPP ▼Vector Packet Processing ▼User Documentation Intel AVF device plugin for VPP(Intel® Ethernet Adaptive Virtual Function Specification) BFD module...2020-09-03 18:10:23274
3
-
原创 VPP命令行:启动配置,HTTP服务,DPDK配置
VPP CLI 功能 create sub BondEthernet0 834 创建子接口,tag是834 set interface ip table BondEthernet0.834 1 将此接口设置在fib 1里 set interface ip address BondEthernet0.834 192.168.0.250/24 设置接口ip set interface state BondEthernet0.834 up up接口 se...2020-09-02 15:41:30294
7
-
原创 FD.io VPP的C语言接口如何使用:FD.io VPP: How To Use The C API
目录引言 - IntroductionC语言API概述 - C API Overview运行环境 - The Runtime EnvironmentAPI回顾 - Message API Review响应处理的重要信息 - Important Information about Reply Handlers头文件 - API Include Files基本模块和插件 - VPE vs. Plugin Messages消息注册 - Message RegistrationW2020-09-01 19:08:25848
15
-
原创 FD.io VPP startup.conf配置文件示例:安装后第一次配置
FD.io VPP配置文件详解:https://rtoax.blog.csdn.net/article/details/108056964## Filename: startup.conf## Introduction: VPP start up configure file## Intro URL: https://my-vpp-docs.readthedocs.io/en/latest/gettingstarted/users/configuring/startup.html#unix##2020-09-01 11:09:06340
2
-
原创 F-Stack:ff_run函数详解
ff_run详解作者,风眠-广坤ff_run(loop_func_t loop, void* arg)loop为入口函数arg为user pointer void ff_run(loop_func_t loop, void* arg) { ff_dpdk_run(loop, arg); }ff_dpdk_run函数 void ff_dpdk_run(loop_func_t loop, void *arg) { /**2020-08-25 19:03:10225
1
-
原创 DPDK 绑定网卡之后的解绑
目录查看网卡驱动执行dpdk-devbind.py解绑网卡加载驱动恢复网卡到kernel查看网卡驱动[root@localhost ~]# ethtool -i p1p1driver: ixgbe...执行dpdk-devbind.py# dpdk-devbind --status-dev netNetwork devices using DPDK-compatible driver===================================.2020-08-18 10:59:37351
1
-
原创 Launch F-Stack on AWS EC2 in one minute
Launch F-Stack on AWS EC2 in one minuteIf you have a Redhat7.3 EC2 instance,and then execute the following cmds, you will get the F-Stack server in one minutesudo -iyum install -y git gcc openssl-devel kernel-devel-$(uname -r) bc numactl-devel mkdir mak2020-08-13 18:55:1377
0
-
原创 F-Stack Roadmap
F-Stack RoadmapThis list are major known features, and obviously neither complete nor guaranteed.Zerocopy when send packet.Ipv6 support.Interrupt mode support.Run as a network daemon.SPDK supportted.Python/PHP/Go API supportted.Encapsulate Cyptode2020-08-13 18:54:3465
0
-
原创 F-Stack Release Note
F-Stack Release NoteF-Stack is an open source network framework based on DPDK.2019.11 F-Stack v1.20F-Stack lib:Fix some bugs. Corresponding upstream changeset from Freebsd releng-11.0/release-11.1/release-11.2/release-11.3/release-12Fix bug of bind2020-08-13 18:53:5189
0
-
原创 F-Stack Nginx APP Guide
F-Stack Nginx APP GuideF-Stack is an open source network framework based on DPDK. F-Stack supports standard Nginx as HTTP framework which means all web application based on HTTP can easily use F-Stack.How does Nginx use F-Stack?Nginx APP is in app/nginx2020-08-13 18:53:04108
0
-
原创 F-Stack API Reference(FStack 用户接口)
F-Stack API ReferenceF-Stack (FF) is a high-performance network framework based on DPDK.FF API provides the standard Kqueue/Epoll interface, and a micro threading framework (SPP).In order to facilitate a variety of services to use F-Stack simpler and fa2020-08-13 18:52:11151
3
-
原创 F-Stack Binary Release Quick Start
F-Stack Binary Release Quick StartHow to useBefore you start to use f-stack-binary-release package, please make sure you:have access to the internethave at least one NIC uphave root permissionmeet all other requirements of dpdk$ sudo -i$ wget htt2020-08-13 18:50:2780
0
-
原创 F-Stack Build Guide
F-Stack Build GuideThe procedures to compile f-stack in different linux releases is almost the same, but there are still some points you need to pay attention to. This document aims to help you solve some of the problems you may meet when compiling f-stac2020-08-13 18:49:5878
0
-
原创 F-Stack Quick Start Guide
F-Stack Quick Start GuideF-Stack is an open source high performance network framework based on DPDK.System RequirementsSee Intel DPDK linux_gsgclone F-Stackmkdir /data/f-stackgit clone https://github.com/F-Stack/f-stack.git /data/f-stackCompile DPD2020-08-13 18:49:14108
0
-
原创 DPDK examples l2fwd添加速率统计功能
/* SPDX-License-Identifier: BSD-3-Clause * Copyright(c) 2010-2016 Intel Corporation */#include <stdio.h>#include <stdlib.h>#include <string.h>#include <stdint.h>#include <inttypes.h>#include <sys/types.h>#i...2020-07-29 15:53:07184
0
-
原创 DPDK examples rxtx_callbacks完全注释
目录main.cThe RX/TX Callbacks sample application is a packet forwarding application that demonstrates the use of user defined callbacks on received and transmitted packets. The application performs a simple latency check, using callbacks, to determine th2020-07-29 15:43:15161
0
-
原创 DPDK examples ethtool-app完全注释
目录main.cethapp.hethapp.cThe Ethtool sample application shows an implementation of an ethtool-like API and provides a console environment that allows its use to query and change Ethernet card parameters. The sample is based upon a simple L2 frame re2020-07-29 15:15:42210
0
-
原创 DPDK examples cmdline完全注释(添加quit功能)
目录main.c添加的quit部分代码DPDK版本:20.05main.c/* SPDX-License-Identifier: BSD-3-Clause * Copyright(c) 2010-2014 Intel Corporation. * Copyright (c) 2009, Olivier MATZ <zer0@droids-corp.org> * All rights reserved. */#include <stdio.h>#in2020-07-28 18:01:47167
0
-
原创 DPDK examples helloworld完全注释
/* SPDX-License-Identifier: BSD-3-Clause * Copyright(c) 2010-2014 Intel Corporation */#include <stdio.h>#include <string.h>#include <stdint.h>#include <errno.h>#include <sys/queue.h>#include <rte_memory.h>#in.2020-07-28 17:43:22257
0
-
翻译 DPDK在Linux用户级执行环境中执行EAL
目录在Linux用户级执行环境中进行EAL初始化和核心启动关机和清理多进程支持内存映射发现和内存保留支持外部分配的内存每个核心和共享变量日志CPU功能识别用户空间中断事件黑名单杂项功能IOVA模式检测IOVA模式配置在Linux用户级执行环境中进行EAL在Linux用户空间环境中,DPDK应用程序使用pthread库作为用户空间应用程序运行。EAL使用hugetlbfs中的mmap()执行物理内存分配(使用巨大的页面大小来提高性能)。此内存2020-07-28 13:51:49141
0
-
原创 DPDK lcore学习笔记
1. DPDK核绑定的全局概览DPDK核绑定的相关函数,都集中在rte_eal_init()函数中调用:其中主要分为六部分:检测所有的cpu。 解释核绑定相关参数。 主线程的核绑定。 中断处理线程的创建 副线程的创建。 线程启动和等待。注意:本文中,cpu所指的是机器上的逻辑核(也被称为logical processor,简称为processor)。以下的是rte_eal_init()函数的调用图: main +-> rte_eal_init ...2020-09-28 08:44:20162
0
-
转载 DPDK EAL parameters(DPDK环境抽象层参数)-原始版本(F-Stack配置文件的配置参数)
7. EAL parametersThis document contains a list of all EAL parameters. These parameters can be used by any DPDK application running on Linux.7.1. Common EAL parametersThe following EAL parameters are common to all platforms supported by DPDK.7.1....2020-07-27 17:46:34219
0
-
原创 DPDK EAL parameters(DPDK环境抽象层参数)-MD版本(F-Stack配置文件的配置参数)
整理自EAL parametersThis document contains a list of all EAL parameters. These parameters can be used by any DPDK application running on Linux.Common EAL parametersThe following EAL parameters are common to all platforms supported by DPDK.Lcore-related o2020-07-27 17:37:58153
0
-
翻译 DPDK多线程:EAL pthread和lcore Affinity(F-Stack配置文件的配置参数:lcore_mask、lcore_list)
目录多线程EAL pthread和lcore Affinity非EAL pthread支持公共线程API控制线程API已知的问题cgroup控件多线程DPDK通常每个内核固定一个pthread,以避免任务切换的开销。这可以显着提高性能,但缺乏灵活性,而且并不总是有效的。电源管理通过限制CPU运行时间来帮助提高CPU效率。但是,也可以利用可用的空闲周期来利用CPU的全部功能。通过利用cgroup,可以简单地分配CPU利用率配额。这提供了另一种提高CPU效率的方法,2020-07-27 15:04:12332
1
-
转载 F-Stack KNI配置注意事项
目录F-Stack KNI配置注意事项KNI介绍KNI配置系统配置题图F-Stack KNI配置注意事项KNI介绍KNI(Kernel NIC Interface)内核网卡接口,是DPDK中用于与内核通信的模块,在主要的业务流程中可能并不需要,但在部分场景下,如服务器所有网卡都被F-Stack接管用于业务(或服务器本身只有单网卡),其他如SSH登录管理等数据等就必须开启KNI来与内核进行数据交互。KNI配置因为开启KNI将对收到所有的数据包按转发策略进行检查,会对2020-07-21 14:59:05219
0