出没于杭州和青岛的程序猿一枚,对内核略懂一二
分类: LINUX
2014-08-12 12:18:32
原文地址:SR-IOV PCI-hotplug VT-d技术 作者:galaren77
一.VT-d技术
把一个设备直接分配给某个虚拟机使用。
VT-d ’s Role:
* I/O device assignment: flexibility to assignment, isolation and protection to
the device access.
* DMA remapping: independent address translations for different devices
assigned.
* Interrupt remapping: isolation and routing of interrupts from devices
assigned.
PCI设备 --> I/O APIC or PIC --> PCI总线 --> CPU内的Local APIC接收中断
--> VMM响应中断请求,调用自己的处理函数 --调用--> 虚拟I/O APIC
--调用--> 虚拟Local APIC --> 中断注入
* Reliability: error log before corrupt operation to VMs.
二.SR-IOV技术
An SR-IOV-capable device can be configured (usually by the VMM) to appear in
the PCI configuration space as multiple functions, each with its own configuration
space complete with Base Address Registers (BARs).
1.在ACPI的MCFG sub-table中有PCI配置空间的基地址。
多个设备的PCI配置空间是连续的。
该配置空间内的信息由可能是BIOS提供的,也有可能是Linux扫描设备后填充的。
2.每个PCI-e配置空间有多个Capability,一个Capability代表一个功能。SRIOV就是一个Capability。
3.在SRIOV的Capability里,有VF的个数。VFBar的基地址,和Size。
根据基地址和Size可以找到每个VF的MMIO的地址。
==》VF和PF共享配置空间,但VF有自己单独的Bar地址。
三.PCI-hotplug技术