标签:qemu kvm pci passthrough vfio
声明:
本博客欢迎转发,但请保留原作者信息!
博客地址:http://blog.csdn.net/halcyonbaby
内容系本人学习、研究和总结,如有雷同,实属荣幸!
kernel /vmlinuz-2.6.18-190.el5 ro root=/dev/VolGroup00/LogVol00 rhgb quiet intel_iommu=on
1. 识别设备
# virsh nodedev-list --tree |grep pci
2. 获取设备xml
```# virsh nodedev-dumpxml pci_8086_3a6c```
3. detach设备
```# virsh nodedev-dettach pci_8086_3a6c```
4. 修改虚拟机xml文件(将dumpxml查询到的bus,slot,function填入)
<devices>
......
<hostdev mode=‘subsystem‘ type=‘pci‘ managed=‘yes‘>
<source>
<address domain=‘0x0000‘ bus=‘0x03‘ slot=‘0x00‘ function=‘0x0‘/>
</source>
</hostdev>
......
</devices>
5. 启动虚拟机
1. unbind pci设备
modprobe pci_stub
lspci -D -nn查询pci设备(domain,slot,bus,function)和(vendor id, device id )
以设备(01:00.0, vendor & device ID 8086:10b9)为例:
echo "8086 10b9" > /sys/bus/pci/drivers/pci-stub/new_id
echo 0000:01:00.0 > /sys/bus/pci/devices/0000:01:00.0/driver/unbind
echo 0000:01:00.0 > /sys/bus/pci/drivers/pci-stub/bind
2. 启动虚拟机
-device pci-assign,host=01:00.0
http://www.linux-kvm.org/page/How_to_assign_devices_with_VT-d_in_KVM
VFIO在kernel3.6/qemu1.4以后支持,目前只支持PCI设备。
VFIO是一套用户态驱动框架,提供两种基本服务:
VFIO可以用于实现高效的用户态驱动。在虚拟化场景可以用于device passthrough。
通过用户态配置IOMMU接口,可以将DMA地址空间映射限制在进程虚拟空间中。
这对高性能驱动和虚拟化场景device passthrough尤其重要。
相对于传统方式,VFIO对UEFI支持更好。
VFIO技术实现了用户空间直接访问设备。无须root特权,更安全,功能更多。
http://lwn.net/Articles/509153/http://lwn.net/Articles/474088/https://www.ibm.com/developerworks/community/blogs/5144904d-5d75-45ed-9d2b-cf1754ee936a/entry/vfio?lang=en
1. 查看iommu_group及其下所有设备
cd /sys/bus/pci/devices/0000:0d:00.0/
readlink iommu_group #查看iommu_group名字
ll iommu_group/devices #查看iommu_group下设备
2. 需要将iommu_group下所有设备unbind并添加到iommu_group中
echo 0000:0d:00.0 > /sys/bus/pci/devices/0000:0d:00.0/driver/unbind
echo 1180 e823 > /sys/bus/pci/drivers/vfio-pci/new_id
-device vfio-pci,host=0000:03:00.0
参考http://blog.csdn.net/richardysteven/article/details/9008971
IOMMU:input/output memory management unit。
连接DMA io bus和主存,完成从设备虚拟地址到物理地址的映射。以及提供对故障设备的内存保护的功能。
虚拟机设备直通的两种方式(Working in Progress),布布扣,bubuko.com
虚拟机设备直通的两种方式(Working in Progress)
标签:qemu kvm pci passthrough vfio
原文地址:http://blog.csdn.net/halcyonbaby/article/details/37776211