qemu: VFIO 设备直通(进行中)

目录

1. VFIO 实例化


1. VFIO 实例化

实例化入口函数为:vfio_realize

vfio_get_group 打开/dev/vfio/$groupid设备并连接到container,创建container并将group添加到container之中

  

 

vfio_get_device 得到直通设备的fd

vfio_populate_device 将直通设备的内存区域信息取出来,vfio_region_setup 用直通设备的BAR空间建立VFIO虚拟设备的BAR空间,VFIO_PCI_CONFIG_REGION_INDEX 是PCI配置空间。
vfio_populate_device 获取设备内存恐案件资源后,会进行设备配置空间的处理

  

 

pread 复制一份PCI配置空间到vdev->pdev.config,emulated_config_bits有效值,如果设置了位,从vdev->pdev.config读取,没有设置的位,从设备读取

vfio_add_emulated_word 写入配置空间pdev->config和控制数据vdev->emulated_config_bits

vfio_pci_size_rom 处理设备的ROM,为ROM创建一个MemroyRegion并注册为虚拟设备的ROM

vfio_msix_early_setup 处理MSIx中断

注册BAR

根据直通设备的PCI能力为虚拟机设备添加功能

vfio_intx_enable,vfio_register_xxx_notifier 完成中断初始化

 

 

 

 

 

 

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值