mirror of https://github.com/Qortal/Brooklyn
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
140 lines
5.0 KiB
140 lines
5.0 KiB
====================== |
|
S/390 common I/O-Layer |
|
====================== |
|
|
|
command line parameters, procfs and debugfs entries |
|
=================================================== |
|
|
|
Command line parameters |
|
----------------------- |
|
|
|
* ccw_timeout_log |
|
|
|
Enable logging of debug information in case of ccw device timeouts. |
|
|
|
* cio_ignore = device[,device[,..]] |
|
|
|
device := {all | [!]ipldev | [!]condev | [!]<devno> | [!]<devno>-<devno>} |
|
|
|
The given devices will be ignored by the common I/O-layer; no detection |
|
and device sensing will be done on any of those devices. The subchannel to |
|
which the device in question is attached will be treated as if no device was |
|
attached. |
|
|
|
An ignored device can be un-ignored later; see the "/proc entries"-section for |
|
details. |
|
|
|
The devices must be given either as bus ids (0.x.abcd) or as hexadecimal |
|
device numbers (0xabcd or abcd, for 2.4 backward compatibility). If you |
|
give a device number 0xabcd, it will be interpreted as 0.0.abcd. |
|
|
|
You can use the 'all' keyword to ignore all devices. The 'ipldev' and 'condev' |
|
keywords can be used to refer to the CCW based boot device and CCW console |
|
device respectively (these are probably useful only when combined with the '!' |
|
operator). The '!' operator will cause the I/O-layer to _not_ ignore a device. |
|
The command line |
|
is parsed from left to right. |
|
|
|
For example:: |
|
|
|
cio_ignore=0.0.0023-0.0.0042,0.0.4711 |
|
|
|
will ignore all devices ranging from 0.0.0023 to 0.0.0042 and the device |
|
0.0.4711, if detected. |
|
|
|
As another example:: |
|
|
|
cio_ignore=all,!0.0.4711,!0.0.fd00-0.0.fd02 |
|
|
|
will ignore all devices but 0.0.4711, 0.0.fd00, 0.0.fd01, 0.0.fd02. |
|
|
|
By default, no devices are ignored. |
|
|
|
|
|
/proc entries |
|
------------- |
|
|
|
* /proc/cio_ignore |
|
|
|
Lists the ranges of devices (by bus id) which are ignored by common I/O. |
|
|
|
You can un-ignore certain or all devices by piping to /proc/cio_ignore. |
|
"free all" will un-ignore all ignored devices, |
|
"free <device range>, <device range>, ..." will un-ignore the specified |
|
devices. |
|
|
|
For example, if devices 0.0.0023 to 0.0.0042 and 0.0.4711 are ignored, |
|
|
|
- echo free 0.0.0030-0.0.0032 > /proc/cio_ignore |
|
will un-ignore devices 0.0.0030 to 0.0.0032 and will leave devices 0.0.0023 |
|
to 0.0.002f, 0.0.0033 to 0.0.0042 and 0.0.4711 ignored; |
|
- echo free 0.0.0041 > /proc/cio_ignore will furthermore un-ignore device |
|
0.0.0041; |
|
- echo free all > /proc/cio_ignore will un-ignore all remaining ignored |
|
devices. |
|
|
|
When a device is un-ignored, device recognition and sensing is performed and |
|
the device driver will be notified if possible, so the device will become |
|
available to the system. Note that un-ignoring is performed asynchronously. |
|
|
|
You can also add ranges of devices to be ignored by piping to |
|
/proc/cio_ignore; "add <device range>, <device range>, ..." will ignore the |
|
specified devices. |
|
|
|
Note: While already known devices can be added to the list of devices to be |
|
ignored, there will be no effect on then. However, if such a device |
|
disappears and then reappears, it will then be ignored. To make |
|
known devices go away, you need the "purge" command (see below). |
|
|
|
For example:: |
|
|
|
"echo add 0.0.a000-0.0.accc, 0.0.af00-0.0.afff > /proc/cio_ignore" |
|
|
|
will add 0.0.a000-0.0.accc and 0.0.af00-0.0.afff to the list of ignored |
|
devices. |
|
|
|
You can remove already known but now ignored devices via:: |
|
|
|
"echo purge > /proc/cio_ignore" |
|
|
|
All devices ignored but still registered and not online (= not in use) |
|
will be deregistered and thus removed from the system. |
|
|
|
The devices can be specified either by bus id (0.x.abcd) or, for 2.4 backward |
|
compatibility, by the device number in hexadecimal (0xabcd or abcd). Device |
|
numbers given as 0xabcd will be interpreted as 0.0.abcd. |
|
|
|
* /proc/cio_settle |
|
|
|
A write request to this file is blocked until all queued cio actions are |
|
handled. This will allow userspace to wait for pending work affecting |
|
device availability after changing cio_ignore or the hardware configuration. |
|
|
|
* For some of the information present in the /proc filesystem in 2.4 (namely, |
|
/proc/subchannels and /proc/chpids), see driver-model.txt. |
|
Information formerly in /proc/irq_count is now in /proc/interrupts. |
|
|
|
|
|
debugfs entries |
|
--------------- |
|
|
|
* /sys/kernel/debug/s390dbf/cio_*/ (S/390 debug feature) |
|
|
|
Some views generated by the debug feature to hold various debug outputs. |
|
|
|
- /sys/kernel/debug/s390dbf/cio_crw/sprintf |
|
Messages from the processing of pending channel report words (machine check |
|
handling). |
|
|
|
- /sys/kernel/debug/s390dbf/cio_msg/sprintf |
|
Various debug messages from the common I/O-layer. |
|
|
|
- /sys/kernel/debug/s390dbf/cio_trace/hex_ascii |
|
Logs the calling of functions in the common I/O-layer and, if applicable, |
|
which subchannel they were called for, as well as dumps of some data |
|
structures (like irb in an error case). |
|
|
|
The level of logging can be changed to be more or less verbose by piping to |
|
/sys/kernel/debug/s390dbf/cio_*/level a number between 0 and 6; see the |
|
documentation on the S/390 debug feature (Documentation/s390/s390dbf.rst) |
|
for details.
|
|
|