S/390 PCI¶
- 作者
Pierre Morel
版权所有,IBM 公司,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
插槽条目是使用 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 zPCI 功能标识符,唯一标识 Z 服务器中的功能。
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,或者固件不支持多功能)时
每个域只有一个功能。
域是从 LPAR 创建期间定义的 zPCI 功能的 UID 设置的。
当使用多功能(未设置 norid 参数)时,zPCI 功能的寻址方式不同
每个域仍然只有一个总线。
每个总线最多可以有 256 个功能。
多功能设备的所有功能的地址的域部分,是从 LPAR 创建期间为功能零定义的 zPCI 功能的 UID 设置的。
只有在功能零(devfn 为 0 的功能)被枚举后,新功能才能使用。