美国的电子邮件服务供货商VFEmail在2月11日遭到黑客的毁灭性攻击,黑客格式化了该公司所有服务器的硬盘,破坏了所有的虚拟机、文件服务器及备份服务器,使得VFEmail用户的邮件全都消失,连备份也不见了。2001年成立的VFEmail是家小规模的电子邮件供货商,创办人Rick Romero只是为了因应当时流行的iloveyou邮件病毒,而决定推出整合防毒机制的电子邮件系统,最初只靠一台Fre
Kubernetes(K8S)是一种用于管理容器化应用程序的开源平台。在K8S中,vfio_iommu_type1_attach_group 是一种非常重要的特性,它允许用户将 VFIO 设备(例如GPU设备)直接分配给容器,以获得更好的性能和隔离性。
首先,让我们来了解一下 vfio_iommu_type1_attach_group 的工作原理和实现流程。下面是一个简单的步骤表格:
| 步骤
原创
2024-05-06 10:03:59
122阅读
UIO -->IOMMU --> VFIO1、UIO的出现,允许将驱动程序用到用户态空间里实现,但UIO有它的不足之处,如不支持DMA、中断等;2、随着虚拟化的出现,IOMMU也随之出现,IOMMU为每个直通的设备分配独立的页表,因此不同的直通设备(passthrough),彼此之间相互隔离;3、有一些场景,多个PCI设备之间是有相互联系的,他们互相组成一个功能实体,彼此之间是可以相互
转载
2020-06-01 11:06:00
1300阅读
文章目录VFIO PassThrough1.config空间透传实现qemu实现vfio实现2.BAR空间透传3.vfio中断实现4.透传设备具体实现在这里插入图片描述参考资料 VFIO PassThrough对于VFIO的概述可以参考文章vfio 概述。这里以PCI设备为例讲述VFIO PassThrough具体实现(VFIO不仅仅支持PCI设备)。对于一个透传给虚机的PCI设备,主要处理co
转载
2024-05-09 13:03:45
269阅读
如果问,你觉得有什么好用的浏览器吗?估计有非常多的朋友都会回答:Chrome、火狐、新版Edge等等。但是朋友,这种完全在意料之中的回答,就没什么新意了哈~不如我们来试一下新的浏览器吧,比如Vivaldi,一款号称“让您完全掌控的浏览器”,由Opera联合创始人、前CEO所打造的。有许多使用过的朋友,都觉得这款浏览器比原版Chrome更加好用,可以被称为“神级”浏览器。 悄咪咪的说一声
我们经常会碰到多通道AD采集的需求,有时候甚至需要高精度的ADC器件。本篇我们将来设计并实现ADS1256模数转换器的驱动。并简单讨论该驱动使用方式。1、功能概述 ADS1256是TI公司推出的一款低噪声高分辨率的24位Sigma-Delta(E-v)模数转换器(ADC)。E-vADC与传统的逐次逼近型和积分型ADC相比有转换误差小而价格低廉的优点,但由于受带宽和有效采样率的限制,E-vAD
转载
2024-10-15 09:37:35
59阅读
在Kubernetes(K8S)中,DPDK(Data Plane Development Kit)和VFIO(Virtual Function I/O)是两个关键的概念,它们可以帮助优化网络性能和提升I/O设备的性能。本文将介绍如何在K8S中实现DPDK VFIO,并带有相应的代码示例。
### 关于DPDK和VFIO
DPDK是一个开源的数据包处理框架,旨在优化数据平面应用程序的性能。而V
原创
2024-05-23 09:59:11
237阅读
这篇文章是对vhost-user / virtio-pmd架构的深入技术研究,该架构针对基于DPDK的高性能用户空间网络,面向所有有兴趣了解这些基本细节的架构师和开发人员。介绍本文将在读者熟悉vhost-net架构的基础上展示使用vhost-net协议将网络处理从qemu移出并移入内核驱动程序的好处。在本文中,我们将更进一步,展示如何在客户机和主机上使用DPDK(数据平面开发包)将数据平面从内核中
背景知识什么是VIRTIO使用完全虚拟化,Guest不加任何修改就可以运行在任何VMM上,VMM对于Guest是完全透明的。但每次I/O都将导致CPU在Guest模式与Host模式间切换,在I/O操作密集时,这个切换是影响虚拟机性能的一个重要因素。对于通过软件方式模拟的虚拟化而言,完全可以制定一个更加高效简洁地适用于软件模拟环境下的驱动和模拟设备交互的标准,于是Virtio诞生了。与完全虚拟化相比
转载
2024-03-05 08:02:44
261阅读
前言本系列的第一篇文章已经提到,IOMMU分别有软件和硬件实现方式。软件IOMMU就是SWIOTLB,上一篇文章已经进行过详尽的介绍。而对于硬件IOMMU,有多个厂商都设计了自己的IOMMU。由于我的开发机器为Intel x86平台,因此接触的是Intel IOMMU。 刚开始,我也找过网上很多资料,但是它们要么是基于较旧的Linux内核版本,要么理解不够深入。因此,即使我并没有深入地掌握Inte
转载
2024-01-14 20:29:32
1016阅读
前言写这篇只因为好奇PMD是如何实现在用户空间,所以只涉及表层和一点皮下知识,想深挖这两种技术还是看代码和其他文章吧。UIO & VFIO全称Userspace I/O和Virtual Function I/O;这两种技术都是用于在用户空间完成对设备的操作和配置的,是DPDK实现PMD(Poll Mode Driver)的基石;不过从UIO相对来说兼容性更差,有一些固有缺陷,新版本已经将i
前言basicfwd位于DPDK源代码example目录下的skeleton目录。 基本转发示例应用程序是转发应用程序的简单框架示例。 它旨在演示DPDK转发应用程序的基本组件。有关更详细的实现,请参阅L2和L3转发示例应用程序。本篇博客是对于官网例程的补充说明:DPDK basicfwd链接地址程序流程分析基本概念首先我们需要理解在DPDK中,网络数据包的是以mbuf来描述的。在这里贴出一篇博客
转载
2024-10-21 21:00:27
58阅读
刚才在Ubuntu apache2.conf里发现了sites-enabled目录,而在/etc /apache2下还有一个sites-available目录,这里面是放什么的呢?其实,这里面才是真正的配置文件,而sites-enabled目 录存放的只是一些指向这里的文件的符号链接,你可以用ls /etc/apache2/sites-enabled/来证实一下。 Ubuntu apache2对于
转载
2024-09-08 07:33:28
118阅读
QEMU 中使用 BIOS 简介BIOS 提供主板或者显卡的固件信息以及基本输入输出功能,QEMU 使用的是一些开源的项目,如 Bochs、openBIOS 等。QEMU 中使用到的 BIOS 以及固件一部分以二进制文件的形式保存在源码树的 pc-bios 目录下。pc-bios 目录里包含了 QEMU 使用到的固件,还有一些 BIOS 以 git 源代码子模块的形式保存在 QEMU 的源码仓库中
全系列文章链接Linux x86-64 IOMMU详解(一)——IOMMU简介Linux x86-64 IOMMU详解(二)——SWIOTLB(软件IOMMU)Linux x86-64 IOMMU详解(三)——Intel IOMMU(硬件IOMMU)的功能与基本原理Linux x86-64 IOMMU详解(四)——启用Intel IOMMU的配置Linux x86-64 IOMMU详解(五)——I
转载
2024-01-21 01:06:25
137阅读
在qemu-kvm虚拟化环境中,为提高虚拟机性能,需要将主机(PCI)设备直通给虚拟机(vm),即:设备透传技术(也叫设备直通技术),该技术需要主机支持Intel(VT-d) 或 AMD (IOMMU) 硬件虚拟化加速技术。
原创
2019-02-20 13:41:49
9157阅读
前面了解到一个dma_map_ops和设备关联。在透传设备的时候,map的操作实际上上guestOS进行的行为,
原创
2024-06-06 11:09:24
155阅读
一、 动态虚拟机队列(VMQ)虚拟机队列(VMQ)是一种硬件虚拟化技术,可高效地将网络通讯传输给虚拟化的宿主机操作系统。支持 VMQ 的网卡可对传入并等待路由的帧进行分类,根据筛选器创建队列,并将队列关联给虚拟机的虚拟网卡。每个虚拟机设备的缓冲区会分配一个 VMQ,这就避免了在虚拟交换机中进行无意义的数据包复制与路由查询操作。基本上,VMQ 可让宿主机的一个网络适配器在虚拟机中呈现为多个网络适配器
转载
2024-10-11 10:20:29
71阅读
记住两个有用的东西1printk对于做嵌入式或者熟悉linux内核的人来说,对printk这个函数一定不会感到陌生。printk相当于printf的孪生姐妹,她们一个运行在用户态,另一个则在内核态被人们所熟知。 printk是在内核中运行的向控制台输出显示的函数,Linux内核首先在内核空间分配一个静态缓冲区,作为显示用的空间,然后调用sprintf,格式化显示字符串,最后调用tty_write
存储器概念存储器分类存储器是用来存储程序和数据的部件。对于计算机来说,有了存储器才有记忆功能,才能正常工作。按用途可分为主存储器和辅助存储器。主存储器通常安装在主板上,包括:只读存储器ROM(例如主板上的用来保存BIOS信息)和随机存储器RAM。RAM存放当前CPU正在执行和将要执行的程序和需要处理的数据,数据断电后丢失(我们常说的内存条就是RAM)。辅助存储器包括:硬盘、磁带、光盘、U盘等。辅存