dpdk

problem with testpmd on dpdk and ovs in ubuntu 18.04

匿名 (未验证) 提交于 2019-12-03 01:39:01
可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试): 问题: i have a X520-SR2 10G Network Card, i gonna use that to create 2 virtual interfaces with OpenvSwitch that compiled with dpdk (installed from repository of ubuntu 18.04) and test this virtual interfaces with testpmd, i do following jobs : Create Bridge $ ovs-vsctl add-br br0 -- set bridge br0 datapath_type=netdev bind dpdk ports $ ovs-vsctl add-port br0 dpdk0 -- set Interface dpdk0 type=dpdk options:dpdk-devargs=0000:01:00.0 ofport_request=1 $ ovs-vsctl add-port br0 dpdk1 -- set Interface dpdk1 type=dpdk options:dpdk-devargs=0000:01:00.1

Strange linking error: DSO missing from command line

匿名 (未验证) 提交于 2019-12-03 01:10:02
可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试): 问题: When I'm compiling openvswitch-1.5.0, I've encountered the following compile error: gcc -Wstrict-prototypes -Wall -Wno-sign-compare -Wpointer-arith -Wdeclaration-after-statement -Wformat-security -Wswitch-enum -Wunused-parameter -Wstrict-aliasing -Wbad-function-cast -Wcast-align -Wstrict-prototypes -Wold-style-definition -Wmissing-prototypes -Wmissing-field-initializers -Wno-override-init -g -O2 -export-dynamic ***-lpthread*** -o utilities/ovs-dpctl utilities/ovs-dpctl.o lib/libopenvswitch.a /home/jyyoo/src/dpdk/build/lib/librte_eal.a /home

DPDK flow_classify 源码阅读

匿名 (未验证) 提交于 2019-12-03 00:41:02
todo /* SPDX-License-Identifier: BSD-3-Clause * Copyright(c) 2017 Intel Corporation */ #include <stdint.h> #include <inttypes.h> #include <getopt.h> #include <rte_eal.h> #include <rte_ethdev.h> #include <rte_cycles.h> #include <rte_lcore.h> #include <rte_mbuf.h> #include <rte_flow.h> #include <rte_flow_classify.h> #include <rte_table_acl.h> #define RX_RING_SIZE 1024 #define TX_RING_SIZE 1024 #define NUM_MBUFS 8191 #define MBUF_CACHE_SIZE 250 #define BURST_SIZE 32 #define MAX_NUM_CLASSIFY 30 #define FLOW_CLASSIFY_MAX_RULE_NUM 91 #define FLOW_CLASSIFY_MAX_PRIORITY 8 #define FLOW_CLASSIFIER_NAME

DPDK PCIe 与 包处理

匿名 (未验证) 提交于 2019-12-02 23:45:01
参考文献:  《深入浅出DPDK》   linux 阅马场 公众号 .............................................................................................................. 一. PCIe 介绍(参考 linux 阅马场文章) 首 先我们来看一下在x86系统中,PCIe是什么样的一个体系架构。下图是一个PCIe的拓扑结构示例,PCIe协议支持256个Bus, 每条Bus最多支持32个Device,每个Device最多支持8个Function,所以由BDF(Bus,device,function)构成了 每个PCIe设备节点的身份证号。 PCIe 体系架构一般由root complex,switch,endpoint等类型的PCIe设备组成,在root complex和switch中通常会有一些embeded endpoint(这种设备对外不出PCIe接口)。这么多的设备,CPU启动后要怎么去找到并认出它们呢? Host对PCIe设备扫描是采用了深度优先算法,其过程简要来说是对每一个可能的分支路径深入到不能再深入为止,而且每个节点只能访问一次。我们一般称 这个过程为PCIe设备枚举。枚举过程中host通过配置读事物包来获取下游设备的信息

DPDK学习开篇

匿名 (未验证) 提交于 2019-12-02 23:42:01
1.前言 说来想学习DPDK已经是很久的事情了,奈何总是被所谓的紧急的事情耽误,故而决心学习一下,记录一下以便总结,知道DPDK已经是很久之前的事情了,记得曾经一次面试就被问到DPDK报文如何走的,也是被问的一脸懵逼甚是尴尬, 主要是工作中用到会比较多, 个人对DPDK的处理机制也是很感兴趣 2.DPDK介绍 3.DPDK 优势 1)轮询与中断 起初的纯轮询模式是指收发包完全不使用任何中断,集中所有运算资源用于报文处理。DPDK纯轮询模式是指收发包完全不使用中断处理的高吞吐率的方 式。DPDK所有的收发包有关的中断在物理端口初始化的时候都会关 闭,也就是说,CPU这边在任何时候都不会收到收包或者发包成功的中 断信号,也不需要任何收发包有关的中断处理。具体收发包流程参见之后的文章单独说明。网络应用中可能存在的潮汐效应,在某些时间段网络数据 流量可能很低,甚至完全没有需要处理的包,这样就会出现在高速端口 下低负荷运行的场景,而完全轮询的方式会让处理器一直全速运行,明 显浪费处理能力和不节能。因此在DPDK R2.1和R2.2陆续添加了收包中 断与轮询的混合模式的支持,类似NAPI的思路,用户可以根据实际应 用场景来选择完全轮询模式,或者混合中断轮询模式。而且,完全由用 户来制定中断和轮询的切换策略,比如什么时候开始进入中断休眠等待 收包,中断唤醒后轮询多长时间,等等。 2)多线程编程:

DPDK中使用VFIO的配置

匿名 (未验证) 提交于 2019-12-02 22:56:40
VFIO VFIO是一个可以安全地把设备I/O、中断、DMA等暴露到用户空间(userspace),从而可以在用户空间完成设备驱动的框架。用户空间直接设备访问,虚拟机设备分配可以获得更高的IO性能。 依赖于IOMMU. vfio-pci. 相比于UIO,VFIO更为强健和安全 本机使用版本为ubuntu18.04 Linix kernel version>=3.6.0 $ uname -r 需要主板、内核、BIOS支持VT-x、VT-d。 显示是否支持VT-d或VT-d是否成功打开 $ dmesg | grep -e DMAR -e IOMMU 若出现: IOMMU not found 或 不知如何在BIOS中enable00 VX-d ,可参考博客: http://www.cnblogs.com/vancasola/p/9360837.html 检查 VT-d 在kernel中是否enabled, 运行: $ cat /proc/cmdline | grep iommu=pt $ cat /proc/cmdline | grep intel_iommu=on 如果没有显示,需要进行如下配置: 此步修改系统文件,容易误操作导致系统错误,修改前注意备份! 进入配置文件: nano /etc/default/grub 添加配置信息:添加iommu=pt intel_iommu

DPDK 简介

蹲街弑〆低调 提交于 2019-12-02 00:46:06
DPDK(Data Plane Development Kit)是由6WIND,Intel等多家公司开发,主要基于Linux系统运行,用于快速数据包处理的函数库与驱动集合,可以极大提高数据处理性能和吞吐量,提高数据平面应用程序的工作效率。 DPDK使用了轮询(polling)而不是中断来处理数据包。在收到数据包时,经DPDK重载的网卡驱动不会通过中断通知CPU,而是直接将数据包存入内存,交付应用层软件通过DPDK提供的接口来直接处理,这样节省了大量的CPU中断时间和内存拷贝时间。 Why need DPDK Where are the bottlenecks? => System calls 系统调用把应用程序的请求传给内核,调用相应的内核函数完成所需的处理,将处理结果返回给应用程序 => interrupt processing => switching between user space and kernel space => data copy 用户平面到内核平面数据复制 => Scheduling and content switch of user processes 用户进程的调度和内容切换 => Inefficient read/write of memory, cache miss 不够有效的内存读写,很多cache miss, Cache是用来对内存数据的缓存

dpdk中文-DPDK学习路线图

非 Y 不嫁゛ 提交于 2019-11-29 13:35:07
接触DPDK也有快一年的时间了;因为项目中需要使用,所以一直在操练;讲说说一般DPDK的学习路线图;因为DPDK至今也没有一本靠谱的教程,所以决定亲自下手; 其实学完前面4个部分呢,基本上就算是入门DPDK了,应该至少看着别人的代码可以修改的程度了;后续我也将以这个为路线图,出系类博客教程,目标不求通过看我的博客成为大神,但可以轻松入门 来源: https://blog.csdn.net/weixin_28712713/article/details/100824434

阿里云高级总监谈超大规模超高性能分布式快存储系统

流过昼夜 提交于 2019-11-29 03:49:11
摘要: 10月27日下午,2018中国计算机大会上举办了主题“新型硬件环境下大数据处理技术”的技术论坛,一起探讨新型硬件带来的变化。论坛上,阿里云高级总监马涛针对超大规模超高性能分布式块存储系统ESSD进行了报告分析。 新型硬件(如NVRAM、RDMA、GPU/TPU等)及其构建的异构复杂环境,与既有硬件环境的巨大差异,导致传统的算法、数据结构甚至是涉及原则和经验法则等难以为继,对计算智能与大数据处理带来新的挑战和机遇。 10月27日下午,2018中国计算机大会上举办了主题“新型硬件环境下大数据处理技术”的技术论坛,一起探讨新型硬件带来的变化。论坛上,阿里云高级总监马涛针对超大规模超高性能分布式块存储系统ESSD进行了报告分析。 专家简介: 马涛,阿里云高级总监,在IBM、ORACLE有多年的操作系统以及企业级存储的研发经验,2010年加入阿里巴巴集团淘宝核心系统部,负责淘宝底层操作系统的设计和研发工作。2014年转入阿里云,负责阿里云弹性计算存储相关产品的研发工作。 在报告中,马涛指出面对企业上云实现数字化转型以及新硬件架构层出不穷,现有存储产品已无法满足业务的需求,亟需新一代的超大规模、超高性能分布式快存储(ESSD)提升系统的业务能力,目前ESSD的性能已将单块云盘性能提升到100万IOPS、100微秒延迟、4000MB吞吐量的全新高度。 随后

拥抱IPv6技术 通往下一代网络

依然范特西╮ 提交于 2019-11-29 00:52:33
著名的木桶效应告诉我们:“一只水桶能盛多少水取决于最短的那块木板”。在企业纷纷走上数字化转型的过程中,底层支撑的IT基础设施服务能否跟得上企业发展的节奏是关键。过去几年,计算能力通过GPU、FPGA等硬件发生了巨大的突破,存储性能也随着SSD固态硬盘的普及大幅提升,作为IT基础架构重要组成部分的网络如何利用SDN、IPv6等技术进行改革,才能避免成为阻碍企业数字化转型的“短板”? 除此之外,下一代网络该如何应对25G甚至是100G网卡带来的性能挑战?UCloud虚拟网络是如何演进并解决这些问题的?12月21日UCloud用户大会上海站“产品和技术专场”将会为你带来下一代网络这一主题的分享。届时UCloud技术副总裁杨镭将带着对这些问题的深入思考,引领大家走进下一代网络的技术风口。 云计算给虚拟网络带来新挑战 我们知道传统的数据中心网络由物理交换机和路由器组成,但到了云时代,随着SDN和NFV等技术的参与,数据中心的网络边界正在不断扩大,从云服务器内部的虚拟网络再到数据中心互联的虚拟网络。其实网络虚拟化并不是一个云计算时代才新兴的概念,简单来说就是在一个物理网络上模拟出多个逻辑网络来,常见的形式有VLAN、VPC、VPN等。那么,在公有云环境下,虚拟网络迎来了哪些新的挑战? 首先,网络虚拟化需要具备多租户隔离的能力。最早的VLAN协议中的 VID只有12个bit