您可以将单个 PCIe 端点(或可分配的直接 I/O)设备分配到域。这种 PCIe 端点设备的使用增加了将设备分配到 I/O 域的粒度。这种功能是通过直接 I/O (Direct I/O, DIO) 功能提供的。
通过 DIO 功能,您可以在系统中创建比 PCIe 总线数更多的 I/O 域。可能的 I/O 域数当前仅受 PCIe 端点设备数限制。
PCIe 端点设备可以是下列任意一个:
插槽中的 PCIe 卡
由平台标识的板载 PCIe 设备
下图显示了将 PCIe 端点设备 PCIE3 分配到 I/O 域。I/O 域中的总线 pci_0 和交换机都是虚拟的。不可再在 primary 域中访问PCIE3 端点设备。
在 I/O 域中,pci_0 块和交换机分别为虚拟根联合体和虚拟 PCIe 交换机。该块和交换机类似于 primary 域中的 pci_0 块和交换机。在 primary 域中,插槽 PCIE3 中的设备是原始设备的“影子”格式,并标识为 SUNW,assigned。
注意 - 在使用 ldm remove-io 命令从 primary 域中删除某个 PCIe 端点设备之后,就无法通过 Oracle Solaris 热插拔操作“热删除”该设备。有关更换或删除 PCIe 端点设备的信息,请参见更改 PCIe 硬件。 |
图 5 将 PCIe 端点设备分配到 I/O 域
使用 ldm list-io 命令列出 PCIe 端点设备。
即使 DIO 功能允许将插槽中的任意 PCIe 卡分配到 I/O 域,也仅支持某些 PCIe 卡。请参见直接 I/O 硬件和软件要求。
注意 - 不支持具有桥的 PCIe 卡。也不支持 PCIe 函数级分配。将不受支持的 PCIe 卡分配到 I/O 域可能会导致不可预测的行为。 |
以下各项介绍了有关 DIO 功能的重要详细信息:
仅当满足所有软件要求时才会启用此功能。请参见直接 I/O 硬件和软件要求。
使用 DIO 功能,只可将连接到已分配至根域的 PCIe 总线的 PCIe 端点分配到其他域。
只有当根域正在运行时,使用 DIO 的 I/O 域才能访问 PCIe 端点设备。
重新引导根域会对具有 PCIe 端点设备的 I/O 域产生影响。请参见重新引导配置了 PCIe 端点的根域。根域还执行以下任务:
初始化和管理 PCIe 总线。
处理所有由分配到 I/O 域的 PCIe 端点设备触发的总线错误。请注意,只有 primary 域才会收到所有与 PCIe 总线相关的错误。