pcitool(1M)
名称pcitool - 中断路由工具
用法概要
/usr/sbin/pcitool -h
x86:
/usr/sbin/pcitool pci@unit-address -i cpu#,ino# | all [-r [-c] |
-w cpu# [-g] ] [-v] [-q]
SPARC:
/usr/sbin/pcitool pci@unit-address -i ino# | all [-r [-c] |
-w cpu# [-g] ] [-v] [-q]
/usr/sbin/pcitool pci@unit-address -m msi# | all [-r [-c] |
-w cpu# [-g] ] [-v] [-q]
描述
PCItool 是一个低级工具,提供一个用于获取和设置中断路由信息的工具。
中断路由
pcitool –i 命令可显示给定结点上 INO 的设备和 CPU 路由信息,并允许将给定 INO 或 INO 组重新路由至特定 CPU。
在 SPARC 平台上,INO 将映射到某个中断 mondo,而一个或多个 MSI/X 将映射到一个 INO。因此,INO 和 MSI/X 可单独重新确定目标。使用 –i 选项可以检索或重新路由给定的 INO;使用 –m 选项可以检索或重新路由 MSI/X。
在 x86 平台上可以指定 cpu#。与 ino# 配合使用可标识一个独占向量。SPARC 平台不支持 cpu# 参数。
所需特权
要访问中断信息,用户必须具有所有特权。一般用户在通过 su(1M) 成为 root 用户之后便可以访问中断信息,或者,如果在 user_attr 文件中为其授予了 "Maintenance and Repair"(维护和修复)权限配置文件,他也可以访问中断信息。请参见 user_attr(4) 和 rbac(5)。
选项
支持以下选项:
–h
显示命令用法。
–q
没有以消息形式显示任何错误。但是,pcitool 仍会返回 Unix 错误代码。
–r [–c]
显示给定结点上 INO 的设备和 CPU 路由信息。显示每个显示的 INO 的每个设备的设备路径和实例编号。在某些平台上,专用于根联合体的中断由附加到其路径名的字符串 (Internal) 表示。
使用 –c,可转储中断控制器信息。
如果命令行上既未提供 –r,也未提供 –w,则假定使用 –r。请参见“示例”部分。
–v
详细输出。
–w cpu# [–g]
将给定 INO 或 MSI/X 路由到给定 CPU。显示新的和原始的路由信息。必须指定 INO 或 MSI/X。
在某些平台上(如 x86),单个功能的多个 MSI 中断需要一起重新路由。使用 –g 执行此操作。–g 选项仅适用于支持的平台,并且仅适用于 MSI 中断组。(可接受 1“组”。)使用 –g 时,提供的向量必须是组中编号最小的向量。组的大小在内部确定。请参见“示例”部分。
示例
示例 1显示所有 INO
用于显示 /pci@0,0 上所有 INO 的命令为:
# pcitool /pci@0,0 -i all
示例 2显示特定 INO 的输出
用于在根结点 /pci@0,0 上显示 INO 0x0,0x21 的命令对于 x86 平台和 SPARC 平台略有不同。
在 x86 平台上:
# pcitool /pci@0,0 -i 0,21
0x0,0x21: mpt 0
/pci@7b,0/pci1022,7458@11/pci1000,3060@2
在 SPARC 平台上:
# pcitool /pci@0,0 -i 21
0x0,0x21: mpt 0
/pci@7b,0/pci1022,7458@11/pci1000,3060@2
上面显示的输出是一个示例,可能会与您的输出有所不同。
示例 3显示特定 MSI 的输出
下面是用于在根结点 /pci@0,0 上显示 MSI 0x1 的命令和样例输出。
# pcitool /pci@0,0 -m 0x1
0x0,0x1: pcieb 0 /pci@7b,0/pci10de,5d@e
示例 4将 INO 从一个 CPU 重新路由到另一个 CPU
将 INO 21 从 CPU 0 成功重新路由到 CPU 1 将生成以下输出。
在 x86 平台上:
# pcitool /pci@0,0 -i 0,21 -w 1
0x0,0x21 -> 0x1,0x20
在 SPARC 平台上:
# pcitool /pci@0,0 -i 21 -w 1
0x0,0x21 -> 0x1,0x20
示例 5将 MSI 从一个 CPU 重新路由到另一个 CPU
将 MSI 1 从 CPU 1 成功重新路由到 CPU 0 将生成以下输出。
# pcitool /pci@0,0 -m 1 -w 0
0x1,0x1 -> 0x0,0x1
示例 6重新路由 INO 组
将以 24 开始的 INO 组从 CPU 0 成功重新路由到 CPU 1 将生成以下输出。
在 x86 平台上:
# pcitool /pci@0,0 -i 3,24 -w 1 -g
0x3,0x24 => 0x1,0x22
在 SPARC 平台上:
# pcitool /pci@0,0 -i 24 -w 1 -g
0x3,0x24 => 0x1,0x22
退出状态
0
无错误。
EINVAL
传入的参数超出范围、对齐错误或是无效参数。
ETIME
将中断更改为新 CPU 之前等待暂挂中断解决问题的超时时间。
EIO
发生了 I/O 错误。
属性
有关下列属性的说明,请参见 attributes(5):
属性类型
属性值
体系结构
PCI-based systems(基于 PCI 的系统)
可用性
system/management/pcitool
接口稳定性
Volatile(可变)
另请参见
PCI 规范(可从 www.pcisig.org 获取)
附注
所有值均以十六进制输入。
并非所有命令均适用于所有平台。