腾讯云
开发者社区
文档
建议反馈
控制台
登录/注册
首页
学习
活动
专区
圈层
工具
MCP广场
文章/答案/技术大牛
搜索
搜索
关闭
发布
文章
问答
视频
用户
沙龙
专栏
专区
综合排序
丨
最热优先
丨
最新优先
时间不限
vDPA
:支持 Linux 和 QEMU 中的块设备及内核
VDPA
块仿真设备
vdpa
-sim-blk源码分析
支持不同的总线,例如 vhost-
vdpa
和virtio-
vdpa
。 `$
vdpa
dev add mgmtdev vdpasim_blk name
vdpa
0# `
vdpa
0` is attached to the first
vDPA
bus driver loaded $ driverctl -b
vdpa
list-devicesvdpa0 virtio_
vdpa
# change the `
vdpa
0` bus to `vhost-
vdpa
` 迁移总线
vdpa
0 - > vhost-
vdpa
$ driverctl -b
vdpa
set-override
vdpa
0 vhost_
vdpa
# `
vdpa
0` is now attached to the `vhost-
vdpa
此补丁引入了软件
vDPA
总线,它抽象了
vDPA
设备、
vDPA
总线驱动程序的通用属性以及
vDPA
设备抽象和
vDPA
总线驱动程序之间的通信方法 (
vdpa
_config_ops)。
晓兵
2024-07-15
1.5K
3
标签:
高性能
内核
存储虚拟化
云计算
虚拟化
虚拟化硬件加速-
vdpa
,配合dpdk中的vpda运行,dpdk再调用厂商开发的用户态
vdpa
驱动,另一种是vhost-
vdpa
,通过ioctl调用到内核通用
vdpa
模拟,通用
vdpa
模块再调用厂商硬件专有的
vdpa
驱动。 用dpdk中的
vdpa
示例程序配置,说明需要把
vdpa
示例程序集成到ovs-dpdk中,实现
vdpa
/openflow/vxlan offload,如果用ovs-kernel那么用内核
vdpa
通用框架即可 VDUSE
vdpa
可以由硬件实现,intel有自己的硬件驱动,mellanox有自己的硬件驱动,硬件驱动生成一个
vdpa
_device,挂载到
vdpa
_bus上。 我理解好处就是硬件支持
vdpa
用硬件的,硬件不支持用软件实现的
vdpa
,屏蔽底层差异,软件实现在用户态更简单,很多硬件实现了网络io
vdpa
加速,但目前没有看到硬件实现存储io
vdpa
加速,字节跳动提出的
vdpa
。
惠伟
2021-07-29
6.3K
0
标签:
kvm
linux
虚拟化硬件加速-
vdpa
以前提到过
vdpa
,只有mellanox connectx-5网卡,不支持
vdpa
,公司最近来了mellanox DPU,也就是bluefield-2,自带connectx-6网卡,硬件支持
vdpa
,再分析一下看怎么个搞法 ,配合dpdk中的vpda运行,dpdk再调用厂商开发的用户态
vdpa
驱动,另一种是vhost-
vdpa
,通过ioctl调用到内核通用
vdpa
模拟,通用
vdpa
模块再调用厂商硬件专有的
vdpa
驱动。 用dpdk中的
vdpa
示例程序配置,说明需要把
vdpa
示例程序集成到ovs-dpdk中,实现
vdpa
/openflow/vxlan offload,如果用ovs-kernel那么用内核
vdpa
通用框架即可 我理解好处就是硬件支持
vdpa
用硬件的,硬件不支持用软件实现的
vdpa
,屏蔽底层差异,软件实现在用户态更简单,很多硬件实现了网络io
vdpa
加速,但目前没有看到硬件实现存储io
vdpa
加速,字节跳动提出的
vdpa
。
惠伟
2022-04-28
2.7K
0
标签:
虚拟化
开源
存储
kernel
linux
【重识云原生】第四章云网络4.7.5节
vDPA
方案——virtio的半硬件虚拟化实现
在Redhat提出硬件
vDPA
架构之前,Mellanox实现了软件
vDPA
(即VF Relay)。 Qemu支持两种方式的
vDPA
,一种是vhost-user,配合DPDK中的
vDPA
运行,DPDK再调用厂商用户态
vDPA
驱动;另一种方式是vhost-
vdpa
,通过ioctl调用到内核通用
vDPA
模块 ,通用
vDPA
模块再调用厂商硬件专有的
vDPA
驱动。 2) 硬件
vDPA
: 硬件
vDPA
实际上是借助virtio硬件加速,以实现更高性能的通信。由于控制面复杂,所以用硬件难以实现。 厂商自己开发驱动,对接到用户空间DPDK的
vDPA
和内核
vDPA
架构上,可以实现硬件
vDPA
。
江中散人_Jun
2022-06-30
3.2K
0
标签:
开源
虚拟化
编程算法
用户态
vdpa
设备vduse简介及结合QEMU源码分析
不熟悉
vDPA
内核框架,请参阅我们的
vDPA
内核框架和用于内核子系统交互的
vDPA
总线驱动程序简介博客,以熟悉
vDPA
总线、
vDPA
总线驱动程序和
vDPA
设备等概念,因为我们假设读者很熟悉以及本博客中的这些主题 内核中的VDUSE模块负责桥接VDUSE守护进程和
vDPA
框架,以便用户空间
vDPA
设备可以在
vDPA
框架下工作,它包含三个功能模块:VDUSE 使用char 设备接口将
vDPA
配置操作和内存映射信息中继到用户空间
vDPA
设备将VDUSE 模块连接到
vDPA
框架,通过将其附加(通过实现通用
vDPA
总线操作)到
vDPA
总线,VDUSE 模块可以接收来自
vDPA
框架的控制消息,然后 VDUSE 模块可以对其进行处理 目前,
vDPA
内核框架支持两种类型的
vDPA
总线驱动程序:virtio-
vdpa
(用于容器)和vhost-
vdpa
(用于虚拟机, 如QEMU中的GUEST)如果您想通过 VDUSE 为容器工作负载提供接口 ,则
vDPA
设备应与 virtio-
vdpa
绑定(如下所示)。
晓兵
2024-07-16
1.3K
0
标签:
存储虚拟化
云计算
虚拟化
高性能
内核
Intel FPGA 100G VF(IFCVF) DPDK用户态
VDPA
设备probe探测流程
在驱动程序Probe探测期间,将创建一个新容器,使用此容器
vDPA
驱动程序可以使用 VM 的内存区域信息对 DMA 重映射表进行编程。 SW 协助
vDPA
实时迁移。 先决条件 具有 IOMMU 功能的平台。 , ifcvf_
vdpa
.c -> net/ifcvf:添加 ifcvf
vDPA
驱动程序,IFCVF
vDPA
(vhost 数据路径加速)驱动程序为 Intel FPGA 100G VF(IFCVF 由于
vDPA
驱动程序需要设置 MSI-X 向量来中断客户机,因此目前仅支持 vfio-pci RTE_PMD_REGISTER_PCI(net_ifcvf, rte_ifcvf_
vdpa
) static ) rte_kvargs_process(kvlist, IFCVF_
VDPA
_MODE, &open_int, &
vdpa
_mode) list = rte_zmalloc("ifcvf
晓兵
2024-08-04
924
0
标签:
云计算
虚拟化
高性能
内核
通信
【重识云原生】第四章云网络4.7.4节vhost-user方案——virtio的DPDK卸载方案
其主要差别在于:其一,支持
vdpa
的设备驱动通过rte_
vdpa
_register_device函数注册了rte_device和支持的功能接口到
vdpa
_device_list链表中,如此应用程序可以通过
vdpa
” 目录下,该部分代码实现的功能主要通过上述的rte_
vdpa
_register_device来对vhost 设备呈现并产生关联。 这里以ifc驱动的为例,将其主要机制概述如下: 匹配设备并调用
vdpa
设备驱动进行初始化; “DPDK/drivers/
vdpa
/ifc” 目录下为Intel的SmartNIC的对应
vdpa
在ifcvf_pci_probe函数中,即会调用rte_
vdpa
_register_device来注册
vdpa
设备和函数接口; 2. vhost机制获取注册的
vdpa
设备并在frond-end建链时关联 DPDK代码中现可跑起来的
vdpa
的example在 “DPDK/examples/
vdpa
” 目录下。可以通过编译DPDK时由 “-Dexamples=
vdpa
” 来指定编译,并参考37.
江中散人_Jun
2022-06-27
3.1K
0
标签:
开源
socket编程
unix
Linux阅码场 - Linux内核月报(2020年12月)
还有一些补丁集我们之前没有介绍过,其中有一个关于
vDPA
的
vDPA
: API for reporting IOVA range: 这个补丁集导出了一个API,可以向用户态程序报告IOVA范围。 这个补丁比较简单,但我们正好借此机会简单介绍下
vDPA
(Virtual data path acceleration):
vDPA
本质上是一种标准化的方法用来设计SRIOV的网卡。 我们在上面的
vDPA
中提到了控制面,但那个并不是VIRTIO控制面。 而且VIRTIO full offload也会带来产品的同质化,不利于厂商做差异化功能,这样才有了
vDPA
。 ?
vDPA
的控制面可以简单看作是一个转换层。 但是
vDPA
的控制面可以将虚拟机的VIRTIO控制命令,通过
vDPA
定义的通用控制面接口转换为各个厂商自定义的接口。这只需要在主机端添加
vDPA
设备厂商提供的
vDPA
addon驱动即可。
Linux阅码场
2021-01-27
2.1K
0
标签:
linux
kernel
node.js
arm
缓存
Virtio网络的演化之路
vDPA
(vhost Data Path Acceleration)即是让virtio数据平面不需主机干预的解决方案。 总体来看,
vDPA
的数据平面与SR-IOV设备直通的数据平面非常接近,并且在性能数据上也能达到后者的水准。 更重要的是
vDPA
框架保有virtio这套标准的接口,使云服务提供商在不改变virtio接口的前提下,得到更高的性能。 需要注意的是,
vDPA
框架中利用到的硬件必须至少支持virtio ring的标准,否则可想而知,硬件是无法与前端进行正确通信的。另外,原先软件交换机提供的交换功能,也转而在硬件中实现。 ? 图 4
vDPA
架构 5.总结 纵观virtio网络的发展,控制平面由最原始的virtio到vhost-net协议,再到vhost-user协议,逐步得到了完善与扩充。
虚拟化云计算
2019-11-18
9K
0
标签:
开源
虚拟化
virtio+ovs转发原理和性能分析
vdpa
? vfio控制iommu的代码,
vdpa
需要自己开发,内核中没有upstream,控制面利用vhost协议,vhost再调用vhost-
vdpa
,vhost-
vdpa
调用硬件厂商提供的接口把控制信息下放到硬件中 这种方法硬件网卡直接把包DMA到guest中了,问题是kick和call还是很麻烦,kick到了kvm,kvm通知vhost-
vdpa
,vhost-
vdpa
调用硬件驱动通知硬件。 硬件call时中断给了硬件驱动,硬件驱动通知vhsot-
vdpa
,vhost-
vdpa
通知kvm,kvm把中断注入guest,如果guest用dpdk poll mode driver,kick和call
vdpa
就是zero-copy。
惠伟
2021-02-24
4.3K
0
标签:
kvm
虚拟化
开源
问题归档
专栏文章
快讯文章归档
关键词归档
开发者手册归档
开发者手册 Section 归档