S/390 PCI¶
- 作者
Pierre Morel
版权所有,IBM Corp. 2020
命令行参数和 debugfs 条目¶
命令行参数¶
nomio
不要使用 PCI 映射 I/O (MIO) 指令。
norid
忽略 RID 字段,并强制每个 PCI 函数使用一个 PCI 域。
debugfs 条目¶
S/390 调试特性 (s390dbf) 生成视图,用于保存在以下形式的 sysfs 目录中的各种调试结果
/sys/kernel/debug/s390dbf/pci_*/
例如
/sys/kernel/debug/s390dbf/pci_msg/sprintf 保存来自 PCI 事件处理的消息,例如机器检查处理和全局功能设置,如 UID 检查。
通过将 0 到 6 之间的数字管道传输到 /sys/kernel/debug/s390dbf/pci_*/level 来更改日志记录的详细程度。有关详细信息,请参阅 S390 调试特性 上的 S/390 调试特性文档。
Sysfs 条目¶
特定于 zPCI 函数的条目和保存 zPCI 信息的条目。
/sys/bus/pci/slots/XXXXXXXX
slot 条目是使用 PCI 函数的功能标识符 (FID) 设置的。 上面描述为 XXXXXXXX 的格式是 8 个十六进制数字,用 0 填充并且是小写十六进制数字。
/sys/bus/pci/slots/XXXXXXXX/power
当前支持虚拟功能的物理功能无法断电,直到所有虚拟功能都已删除:echo 0 > /sys/bus/pci/devices/XXXX:XX:XX.X/sriov_numvf
/sys/bus/pci/devices/XXXX:XX:XX.X/
function_id 唯一标识 Z 服务器中功能的 zPCI 功能标识符。
function_handle 用于配置的 PCI 功能的底层标识符。它可能对调试有用。
pchid I/O 适配器的模型相关位置。
pfgid PCI 功能组 ID,共享相同功能的函数使用公共标识符。 PCI 组定义中断、IOMMU、IOTLB 和 DMA 规范。
vfn 虚拟功能编号,对于虚拟功能从 1 到 N,对于物理功能为 0。
pft PCI 功能类型
port 该端口对应于函数连接到的物理端口。它还指示虚拟功能连接到的物理功能。
uid 用户标识符 (UID) 可以定义为机器配置的一部分或 z/VM 或 KVM 客户机配置的一部分。 如果附带的 uid_is_unique 属性为 1,则平台保证 UID 在该实例中是唯一的,并且在系统生命周期内无法附加具有相同 UID 的设备。
uid_is_unique 指示用户标识符 (UID) 是否保证在该 Linux 实例中是且保持唯一。
pfip/segmentX 这些段确定函数的隔离。 它们对应于函数的物理路径。 段越不同,函数隔离得越多。
枚举和热插拔¶
PCI 地址由四个部分组成:域、总线、设备和功能,其形式为:DDDD:BB:dd.f
当不使用多功能时(设置了 norid,或者固件不支持多功能)
每个域只有一个功能。
域从 zPCI 功能的 UID 设置,如 LPAR 创建期间所定义的那样。
当使用多功能时(未设置 norid 参数),zPCI 功能的寻址方式不同
每个域仍然只有一条总线。
每条总线最多可以有 256 个功能。
多功能设备的所有功能的地址的域部分都从 zPCI 功能的 UID 设置,如 LPAR 创建中为功能零定义的那样。
只有在功能零(devfn 为 0 的功能)枚举后,新功能才能使用。