| Cornelia Huck | 3952c8d | 2007-10-12 16:11:25 +0200 | [diff] [blame] | 1 | S/390 common I/O-Layer - command line parameters, procfs and debugfs entries | 
|  | 2 | ============================================================================ | 
| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 3 |  | 
|  | 4 | Command line parameters | 
|  | 5 | ----------------------- | 
|  | 6 |  | 
| Sebastian Ott | 14ff56b | 2008-01-26 14:10:37 +0100 | [diff] [blame] | 7 | * ccw_timeout_log | 
|  | 8 |  | 
|  | 9 | Enable logging of debug information in case of ccw device timeouts. | 
|  | 10 |  | 
| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 11 | * cio_ignore = {all} | | 
|  | 12 | {<device> | <range of devices>} | | 
|  | 13 | {!<device> | !<range of devices>} | 
|  | 14 |  | 
|  | 15 | The given devices will be ignored by the common I/O-layer; no detection | 
|  | 16 | and device sensing will be done on any of those devices. The subchannel to | 
|  | 17 | which the device in question is attached will be treated as if no device was | 
|  | 18 | attached. | 
|  | 19 |  | 
|  | 20 | An ignored device can be un-ignored later; see the "/proc entries"-section for | 
|  | 21 | details. | 
|  | 22 |  | 
| Cornelia Huck | 3952c8d | 2007-10-12 16:11:25 +0200 | [diff] [blame] | 23 | The devices must be given either as bus ids (0.x.abcd) or as hexadecimal | 
|  | 24 | device numbers (0xabcd or abcd, for 2.4 backward compatibility). If you | 
|  | 25 | give a device number 0xabcd, it will be interpreted as 0.0.abcd. | 
|  | 26 |  | 
| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 27 | You can use the 'all' keyword to ignore all devices. | 
|  | 28 | The '!' operator will cause the I/O-layer to _not_ ignore a device. | 
| Cornelia Huck | 6fd6e4a | 2005-06-21 17:16:27 -0700 | [diff] [blame] | 29 | The command line is parsed from left to right. | 
| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 30 |  | 
|  | 31 | For example, | 
|  | 32 | cio_ignore=0.0.0023-0.0.0042,0.0.4711 | 
|  | 33 | will ignore all devices ranging from 0.0.0023 to 0.0.0042 and the device | 
|  | 34 | 0.0.4711, if detected. | 
|  | 35 | As another example, | 
|  | 36 | cio_ignore=all,!0.0.4711,!0.0.fd00-0.0.fd02 | 
|  | 37 | will ignore all devices but 0.0.4711, 0.0.fd00, 0.0.fd01, 0.0.fd02. | 
|  | 38 |  | 
|  | 39 | By default, no devices are ignored. | 
|  | 40 |  | 
|  | 41 |  | 
|  | 42 | /proc entries | 
|  | 43 | ------------- | 
|  | 44 |  | 
|  | 45 | * /proc/cio_ignore | 
|  | 46 |  | 
|  | 47 | Lists the ranges of devices (by bus id) which are ignored by common I/O. | 
|  | 48 |  | 
|  | 49 | You can un-ignore certain or all devices by piping to /proc/cio_ignore. | 
|  | 50 | "free all" will un-ignore all ignored devices, | 
|  | 51 | "free <device range>, <device range>, ..." will un-ignore the specified | 
|  | 52 | devices. | 
|  | 53 |  | 
|  | 54 | For example, if devices 0.0.0023 to 0.0.0042 and 0.0.4711 are ignored, | 
|  | 55 | - echo free 0.0.0030-0.0.0032 > /proc/cio_ignore | 
|  | 56 | will un-ignore devices 0.0.0030 to 0.0.0032 and will leave devices 0.0.0023 | 
|  | 57 | to 0.0.002f, 0.0.0033 to 0.0.0042 and 0.0.4711 ignored; | 
|  | 58 | - echo free 0.0.0041 > /proc/cio_ignore will furthermore un-ignore device | 
|  | 59 | 0.0.0041; | 
|  | 60 | - echo free all > /proc/cio_ignore will un-ignore all remaining ignored | 
|  | 61 | devices. | 
|  | 62 |  | 
|  | 63 | When a device is un-ignored, device recognition and sensing is performed and | 
|  | 64 | the device driver will be notified if possible, so the device will become | 
| Cornelia Huck | 9b10fe5 | 2006-10-18 18:30:55 +0200 | [diff] [blame] | 65 | available to the system. Note that un-ignoring is performed asynchronously. | 
| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 66 |  | 
|  | 67 | You can also add ranges of devices to be ignored by piping to | 
|  | 68 | /proc/cio_ignore; "add <device range>, <device range>, ..." will ignore the | 
|  | 69 | specified devices. | 
|  | 70 |  | 
| Cornelia Huck | 6fd6e4a | 2005-06-21 17:16:27 -0700 | [diff] [blame] | 71 | Note: While already known devices can be added to the list of devices to be | 
|  | 72 | ignored, there will be no effect on then. However, if such a device | 
| Cornelia Huck | d45387d | 2008-10-10 21:33:07 +0200 | [diff] [blame] | 73 | disappears and then reappears, it will then be ignored. To make | 
|  | 74 | known devices go away, you need the "purge" command (see below). | 
| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 75 |  | 
| Cornelia Huck | 6fd6e4a | 2005-06-21 17:16:27 -0700 | [diff] [blame] | 76 | For example, | 
| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 77 | "echo add 0.0.a000-0.0.accc, 0.0.af00-0.0.afff > /proc/cio_ignore" | 
| Cornelia Huck | 6fd6e4a | 2005-06-21 17:16:27 -0700 | [diff] [blame] | 78 | will add 0.0.a000-0.0.accc and 0.0.af00-0.0.afff to the list of ignored | 
|  | 79 | devices. | 
| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 80 |  | 
| Cornelia Huck | d45387d | 2008-10-10 21:33:07 +0200 | [diff] [blame] | 81 | You can remove already known but now ignored devices via | 
|  | 82 | "echo purge > /proc/cio_ignore" | 
|  | 83 | All devices ignored but still registered and not online (= not in use) | 
|  | 84 | will be deregistered and thus removed from the system. | 
|  | 85 |  | 
| Cornelia Huck | 3952c8d | 2007-10-12 16:11:25 +0200 | [diff] [blame] | 86 | The devices can be specified either by bus id (0.x.abcd) or, for 2.4 backward | 
|  | 87 | compatibility, by the device number in hexadecimal (0xabcd or abcd). Device | 
|  | 88 | numbers given as 0xabcd will be interpreted as 0.0.abcd. | 
|  | 89 |  | 
| Sebastian Ott | 879acca | 2010-02-26 22:37:25 +0100 | [diff] [blame] | 90 | * /proc/cio_settle | 
|  | 91 |  | 
|  | 92 | A write request to this file is blocked until all queued cio actions are | 
|  | 93 | handled. This will allow userspace to wait for pending work affecting | 
|  | 94 | device availability after changing cio_ignore or the hardware configuration. | 
|  | 95 |  | 
| Cornelia Huck | 3952c8d | 2007-10-12 16:11:25 +0200 | [diff] [blame] | 96 | * For some of the information present in the /proc filesystem in 2.4 (namely, | 
|  | 97 | /proc/subchannels and /proc/chpids), see driver-model.txt. | 
|  | 98 | Information formerly in /proc/irq_count is now in /proc/interrupts. | 
| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 99 |  | 
|  | 100 |  | 
| Cornelia Huck | 3952c8d | 2007-10-12 16:11:25 +0200 | [diff] [blame] | 101 | debugfs entries | 
|  | 102 | --------------- | 
|  | 103 |  | 
|  | 104 | * /sys/kernel/debug/s390dbf/cio_*/ (S/390 debug feature) | 
| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 105 |  | 
|  | 106 | Some views generated by the debug feature to hold various debug outputs. | 
|  | 107 |  | 
| Cornelia Huck | 3952c8d | 2007-10-12 16:11:25 +0200 | [diff] [blame] | 108 | - /sys/kernel/debug/s390dbf/cio_crw/sprintf | 
| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 109 | Messages from the processing of pending channel report words (machine check | 
| Cornelia Huck | 3952c8d | 2007-10-12 16:11:25 +0200 | [diff] [blame] | 110 | handling). | 
| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 111 |  | 
| Cornelia Huck | 3952c8d | 2007-10-12 16:11:25 +0200 | [diff] [blame] | 112 | - /sys/kernel/debug/s390dbf/cio_msg/sprintf | 
| Cornelia Huck | e4a1afa | 2008-10-10 21:33:08 +0200 | [diff] [blame] | 113 | Various debug messages from the common I/O-layer. | 
| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 114 |  | 
| Cornelia Huck | 3952c8d | 2007-10-12 16:11:25 +0200 | [diff] [blame] | 115 | - /sys/kernel/debug/s390dbf/cio_trace/hex_ascii | 
| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 116 | Logs the calling of functions in the common I/O-layer and, if applicable, | 
| Cornelia Huck | 6fd6e4a | 2005-06-21 17:16:27 -0700 | [diff] [blame] | 117 | which subchannel they were called for, as well as dumps of some data | 
|  | 118 | structures (like irb in an error case). | 
| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 119 |  | 
|  | 120 | The level of logging can be changed to be more or less verbose by piping to | 
| Cornelia Huck | 3952c8d | 2007-10-12 16:11:25 +0200 | [diff] [blame] | 121 | /sys/kernel/debug/s390dbf/cio_*/level a number between 0 and 6; see the | 
|  | 122 | documentation on the S/390 debug feature (Documentation/s390/s390dbf.txt) | 
|  | 123 | for details. |