S/390 通用 I/O 层¶
命令行参数、procfs 和 debugfs 条目¶
命令行参数¶
ccw_timeout_log
启用在 ccw 设备超时的情况下记录调试信息。
cio_ignore = device[,device[,..]]
device := {all | [!]ipldev | [!]condev | [!]<devno> | [!]<devno>-<devno>}
通用 I/O 层将忽略给定的设备;在这些设备上不会进行检测和设备感知。 连接到相关设备的子通道将被视为未连接任何设备。
稍后可以取消忽略已忽略的设备; 有关详细信息,请参见“/proc 条目”部分。
这些设备必须作为总线 ID (0.x.abcd) 或作为十六进制设备号 (0xabcd 或 abcd,为了与 2.4 向后兼容) 提供。 如果您给定的设备号为 0xabcd,它将被解释为 0.0.abcd。
您可以使用 ‘all’ 关键字来忽略所有设备。 ‘ipldev’ 和 ‘condev’ 关键字可用于分别引用基于 CCW 的启动设备和 CCW 控制台设备 (这些可能只有与 ‘!’ 运算符组合使用时才有用)。 ‘!’ 运算符将导致 I/O 层 _不_ 忽略设备。 命令行从左到右解析。
例如
cio_ignore=0.0.0023-0.0.0042,0.0.4711
如果检测到,将忽略范围从 0.0.0023 到 0.0.0042 的所有设备以及设备 0.0.4711。
作为另一个例子
cio_ignore=all,!0.0.4711,!0.0.fd00-0.0.fd02
将忽略除 0.0.4711、0.0.fd00、0.0.fd01、0.0.fd02 之外的所有设备。
默认情况下,不忽略任何设备。
/proc 条目¶
/proc/cio_ignore
列出通用 I/O 忽略的设备范围(按总线 ID)。
您可以通过管道传递到 /proc/cio_ignore 来取消忽略某些或所有设备。 “free all” 将取消忽略所有忽略的设备,“free <设备范围>, <设备范围>, ...” 将取消忽略指定的设备。
例如,如果设备 0.0.0023 到 0.0.0042 和 0.0.4711 被忽略,
echo free 0.0.0030-0.0.0032 > /proc/cio_ignore 将取消忽略设备 0.0.0030 到 0.0.0032,并将设备 0.0.0023 到 0.0.002f、0.0.0033 到 0.0.0042 和 0.0.4711 保留为忽略状态;
echo free 0.0.0041 > /proc/cio_ignore 将进一步取消忽略设备 0.0.0041;
echo free all > /proc/cio_ignore 将取消忽略所有剩余的被忽略设备。
当设备被取消忽略时,将执行设备识别和感知,并且如果可能,将通知设备驱动程序,因此该设备将可供系统使用。 请注意,取消忽略是异步执行的。
您还可以通过管道传递到 /proc/cio_ignore 来添加要忽略的设备范围; “add <设备范围>, <设备范围>, ...” 将忽略指定的设备。
- 注意:虽然可以将已知的设备添加到要忽略的设备列表中,
忽略,但不会对其产生任何影响。 但是,如果此类设备消失然后重新出现,则它将被忽略。 要使已知设备消失,您需要 “purge” 命令 (参见下文)。
例如
"echo add 0.0.a000-0.0.accc, 0.0.af00-0.0.afff > /proc/cio_ignore"
将添加 0.0.a000-0.0.accc 和 0.0.af00-0.0.afff 到忽略的设备列表。
您可以通过以下方式删除已知的但现在被忽略的设备:
"echo purge > /proc/cio_ignore"
所有被忽略但仍已注册且未在线(=未使用)的设备将被注销,从而从系统中删除。
可以通过总线 ID (0.x.abcd) 或十六进制的设备号 (0xabcd 或 abcd) 来指定设备,以便与 2.4 向后兼容。 给定的设备号 0xabcd 将被解释为 0.0.abcd。
/proc/cio_settle
对此文件的写入请求将被阻塞,直到处理完所有排队的 cio 操作。 这将允许用户空间在更改 cio_ignore 或硬件配置后等待影响设备可用性的未决工作。
对于 2.4 中 /proc 文件系统中存在的一些信息(即 /proc/subchannels 和 /proc/chpids),请参见 S/390 驱动模型接口。 原来在 /proc/irq_count 中的信息现在位于 /proc/interrupts 中。
debugfs 条目¶
/sys/kernel/debug/s390dbf/cio_*/ (S/390 调试功能)
调试功能生成的一些视图,用于保存各种调试输出。
/sys/kernel/debug/s390dbf/cio_crw/sprintf 来自处理挂起的通道报告字(机器检查处理)的消息。
/sys/kernel/debug/s390dbf/cio_msg/sprintf 来自通用 I/O 层的各种调试消息。
/sys/kernel/debug/s390dbf/cio_trace/hex_ascii 记录通用 I/O 层中函数的调用,以及(如果适用)它们被调用的子通道,以及一些数据结构的转储(例如错误情况下的 irb)。
可以通过管道传递到 /sys/kernel/debug/s390dbf/cio_*/level 一个介于 0 和 6 之间的数字来更改日志记录级别,使其或多或少详细; 有关详细信息,请参见 S/390 调试功能 (S390 调试功能) 的文档。