S/390 通用 I/O 层¶
命令行参数、procfs 和 debugfs 条目¶
命令行参数¶
ccw_timeout_log
在 ccw 设备超时时启用调试信息的日志记录。
cio_ignore = 设备[,设备[,..]]
设备 := {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) 或为了 2.4 的向后兼容性,通过十六进制的设备号(0xabcd 或 abcd)指定。 给出的设备号为 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)。
可以通过将 0 到 6 之间的数字通过管道传输到 /sys/kernel/debug/s390dbf/cio_*/level 来更改日志记录级别,使其更加或更少详细; 有关详细信息,请参阅 S/390 调试功能 (S390 调试功能) 的文档。