首页
学习
活动
专区
圈层
工具
发布
综合排序最热优先最新优先
时间不限
IOMMU(七)-vfio and mdev
vfio-pci是内核驱动,网卡和NVME盘等设备就可以使用这个驱动,使用vfio-pci就会调用到vfio-pci的probe。 vfio-pci和mdev-vfio的probe都调用vfio_add_group_dev添加自己的ops,同时生成一个dev,qemu通过/dev/vfio获取这个dev,再操作这个dev时就调用到vfio-pci /vfio/81/dev vfio group不是凭空造出的一个概念,vfio group和IOMMU硬件的group紧密相关,所以vfio还有一个重要的函数就是vfio_register_iommu_driver qemu调用内核vfio,irqbypass用于把vfio和kvm连接起来。 vfio_msi_enable->vfio_enable_vectors(qemu代码)->vfio_pci_set_irqs_ioctl(内核vfio代码)->vfio_pci_set_msi_trigger
惠伟
2021-05-28
4.9K0
标签:
DPUIPU SPDK存储卸载之用户态vfio(vfio_user)
传输层(软件仿真Nvme盘) 图片 SPDK IPU K8S结合: 图片 VFIO-USER简介 VFIO-USER 是一种协议,允许在虚拟机监视器 (VMM) 之外的单独进程中模拟设备。 ▪ VFIO-USER 规范主要基于 Linux VFIO ioctl 接口,以将其实现为通过 UNIX 域套接字发送的消息。 ▪ VFIO-USER 有两个部分: • VFIO-USER 客户端在 VMM 或应用程序中运行。 • VFIO-USER 服务器用于在单独进程中模拟设备。 */ enum vfio_user_device_mig_state { VFIO_USER_DEVICE_STATE_ERROR = 0, VFIO_USER_DEVICE_STATE_STOP = 1, VFIO_USER_DEVICE_STATE_RUNNING = 2, VFIO_USER_DEVICE_STATE_STOP_COPY = 3, VFIO_USER_DEVICE_STATE_RESUMING
晓兵
2024-09-01
1.4K2
标签:
IOMMU(七)-vfio and mdev
vfio-pci是内核驱动,网卡和NVME盘等设备就可以使用这个驱动,使用vfio-pci就会调用到vfio-pci的probe。 vfio-pci和mdev-vfio的probe都调用vfio_add_group_dev添加自己的ops,同时生成一个dev,qemu通过/dev/vfio获取这个dev,再操作这个dev时就调用到vfio-pci /vfio/81/dev vfio group不是凭空造出的一个概念,vfio group和IOMMU硬件的group紧密相关,所以vfio还有一个重要的函数就是vfio_register_iommu_driver qemu调用内核vfio,irqbypass用于把vfio和kvm连接起来。 vfio_msi_enable->vfio_enable_vectors(qemu代码)->vfio_pci_set_irqs_ioctl(内核vfio代码)->vfio_pci_set_msi_trigger
惠伟
2022-04-28
3K0
标签:
VFIO(Virtual Function IO)研究
主要研究VFIO在虚拟化中的应用,但VFIO的应用不止于虚拟化. VFIO的全称是Virtual Function IO,但这个名字并不能反应它的特点,以下两个假名字更能反应VFIO的特点: Very Fast IO 由于VFIO是将设备直接透传给虚拟机,所以Guest 上使用VFIO,需要将该group下的所有device与其对应的驱动解绑. ---- VFIO Container 在IOMMU_GROUP的基础上,VFIO封装了一层Container Class,Container 虚拟化中VFIO的应用 这里演示一个将网卡设备利用VFIO透传到虚拟机中的例子.需要注意的是,利用VFIO将PCI设备透传到虚拟机之后,Host将无法使用该设备. 要使用VFIO,必须在Linux启动时添加启动项intel_iommu=on,因为VFIO的底层依赖IOMMU.
Linux阅码场
2021-04-22
5.5K0
标签:
VFIO简介-Linux内核源码分析-模块加载-IOCTL接口-DPDK使用VFIO
容器/组/设备的关 VFIO与PCI关系 Qemu/容器/组/设备间的数据结构关系 组/IOMMU/容器/IOMMU域/VFIO_PCI设备间的数据结构关系 VFIO内核源码分析 加载vfio-pci模块 modprobe vfio-pci enable_sriov=1 -> module_init(vfio_pci_init) -> vfio/pci:将 pci_driver 代码从 vfio_pci_core.c _vfio_alloc_device vfio_init_device(device, dev, ops) -> vfio:添加统一 vfio_device 生命周期的帮助程序,其想法是让 > vfio:为 vfio_device 添加 cdev,这会添加对 vfio_device 的 cdev 支持。 ("vfio") -> /dev/vfio/$GROUP alloc_chrdev_region(&vfio.group_devt, 0, MINORMASK + 1, "vfio")
晓兵
2024-05-12
4.1K0
标签:
深入理解VFIO驱动框架
在内核源码中代码路径为:drivers\vfio\vfio.c。 VFIO_DEVICE_GET_IRQ_INFO:得到设备的中断信息 VFIO_DEVICE_RESET:重置设备 下图展示了用户态app,内核态VFIO, vfio-pci驱动,VFIO IOMMU 1)vfio 驱动分析 在vfio.ko驱动加载和卸载的时候会执行vfio_init(),vfio_cleanup()函数。 :将vfio_group 和vfio_iommu 绑定 VFIO_GROUP_UNSET_CONTAINER:将vfio_group 和vfio_iommu 解绑定 VFIO_GROUP_GET_DEVICE_FD 通过对vfio驱动框架中的vfio_container,vfio_iommu, vfio_group, vfio_device, vfio_pci的分析,可以看出如下操作调用关系: 图4 VFIO驱动框架通信接口
Linux阅码场
2022-02-11
8K0
标签:
PVE开启硬件显卡直通功能
" >> /etc/modules root@pve:~# echo "vfio_iommu_type1" >> /etc/modules root@pve:~# echo "vfio_pci" >> # Generated by sensors-detect on Fri Sep 24 17:22:44 2021 # Chip drivers coretemp vfio vfio_iommu_type1 vfio_pci vfio_virqfd 复制代码 接着添加模块(驱动)黑名单,即让GPU设备在下次系统启动之后不使用这些驱动,把设备腾出来给vfio驱动用: Intel核显: echo "blacklist vfio_pci 57344 1 vfio_virqfd 16384 1 vfio_pci irqbypass 16384 11 vfio_pci,kvm vfio_iommu_type1 36864 1 vfio 36864 5 vfio_iommu_type1,vfio_pci
小陈运维
2021-11-19
8.4K0
标签:
GPU虚拟化哪家强
现在Intel和NVIDIA的GPU虚拟化方案都是采用的VFIO mediated passthrough framework。 Linux4.10内核中对VFIO添加了Mediated Device(vfio-mdev) Interface,用来支持Intel GVT-g, NVIDIA vGPU,并提供统一的框架。 Intel和NVDIA采用的VFIO mediated passthrough方式不依赖硬件IOMMU,只需要VFIO模块添加type1 IOMMU的驱动。 VFIO mediated passthrough的性能损耗主要在MMIO的模拟,而AMD的SRIOV方案,VM中对vGPU的MMIO访问完全没有虚拟化开销。 而VFIO mediated passthrough可以通过Host端对vGPU性能指标进行监控,因为VM对GPU的访问要绕道Host端。
虚拟化云计算
2020-09-01
3.5K0
标签:
配置openstack GPU直通
因为我们想要把VGA设备透传到虚拟机中,首先我们需要将设备从物理机上分离(可能分离的 说法并不准确,暂且这么认为),实现的方法是将设备使用的默认驱动禁用,然后将设备加入到vfio模块,让设备使用vfio 如果出现该问题,请检查每个设备的使用的驱动是否已经是vfiovfio_pci#下面的内容也是参考网上的配置,有可能不需要pci_stubvfiovfio_iommu_type1kvmkvm_intel配置vfio加载的设备配置使用vfio驱动的设备(这里的设备就是上面我们查到的设备的 模块是否加载dmesg | grep -i vfio[root@ostack-nmcs-001-026 ~]# dmesg | grep -i vfio [ 5.365031] VFIO - User driver in use: vfio-pci注:如果有设备的驱动不是vfio,可能会导致报错:Please ensure all devices within the iommu_group are
cuijianzhe
2022-07-22
4.4K0
标签:
深入理解SR-IOV和IO虚拟化
中的vfio-pic是一个简易符合VFIO框架PCIe驱动。 3.1.2 VFIO VFIO(Virtual Function I/O)是基于IOMMU为HostOS的用户空间暴露PCIe设备的配置空间和DMA。 VFIO的组成主要有以下及部分,见图3.1.2.1: 图3.1.2.1 l VFIO Interface: VFIO通过设备文件向用户空间提供统一访问接口: • Container文件描述符:打开/dev /vfio字符设备可得 • IOMMU group文件描述符:打开/dev/vfio/N文件可得 • Device文件描述符:向IOMMU group文件描述符发起相关ioctl可得 l vfio_iommu_type1 l vfio-pci: vfio支持pci设备直通时以vfio-pci作为pci设备驱动挂载到pci总线, 将pci设备io配置空间、中断暴露到用户空间。
Linux阅码场
2022-02-11
13.5K1
标签:
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档