手册页部分 1M: 系统管理命令

退出打印视图

更新时间: 2014 年 7 月
 
 

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(可变)

另请参见

su(1M)pci(4)user_attr(4)attributes(5)rbac(5)

PCI 规范(可从 www.pcisig.org 获取)

附注

所有值均以十六进制输入。

并非所有命令均适用于所有平台。