proc.5: tfix
[man-pages.git] / man4 / cciss.4
blobd4dd2863674019377d3a4d2112934e8242a39e0c
1 .\" Copyright (C) 2011, Hewlett-Packard Development Company, L.P.
2 .\" Written by Stephen M. Cameron <scameron@beardog.cce.hp.com>
3 .\"
4 .\" %%%LICENSE_START(GPLv2_ONELINE)
5 .\" Licensed under GNU General Public License version 2 (GPLv2)
6 .\" %%%LICENSE_END
7 .\"
8 .\" shorthand for double quote that works everywhere.
9 .ds q \N'34'
10 .TH CCISS 4 2021-03-22 "Linux" "Linux Programmer's Manual"
11 .SH NAME
12 cciss \- HP Smart Array block driver
13 .SH SYNOPSIS
14 .nf
15 modprobe cciss [ cciss_allow_hpsa=1 ]
16 .fi
17 .SH DESCRIPTION
18 .\" commit 253d2464df446456c0bba5ed4137a7be0b278aa8
19 .BR Note :
20 This obsolete driver was removed from the kernel in version 4.14,
21 as it is superseded by the
22 .BR hpsa (4)
23 driver in newer kernels.
24 .PP
25 .B cciss
26 is a block driver for older HP Smart Array RAID controllers.
27 .SS Options
28 .IR "cciss_allow_hpsa=1" :
29 This option prevents the
30 .B cciss
31 driver from attempting to drive any controllers that the
32 .BR hpsa (4)
33 driver is capable of controlling, which is to say, the
34 .B cciss
35 driver is restricted by this option to the following controllers:
36 .PP
37 .nf
38     Smart Array 5300
39     Smart Array 5i
40     Smart Array 532
41     Smart Array 5312
42     Smart Array 641
43     Smart Array 642
44     Smart Array 6400
45     Smart Array 6400 EM
46     Smart Array 6i
47     Smart Array P600
48     Smart Array P400i
49     Smart Array E200i
50     Smart Array E200
51     Smart Array E200i
52     Smart Array E200i
53     Smart Array E200i
54     Smart Array E500
55 .fi
56 .SS Supported hardware
57 The
58 .B cciss
59 driver supports the following Smart Array boards:
60 .PP
61 .nf
62     Smart Array 5300
63     Smart Array 5i
64     Smart Array 532
65     Smart Array 5312
66     Smart Array 641
67     Smart Array 642
68     Smart Array 6400
69     Smart Array 6400 U320 Expansion Module
70     Smart Array 6i
71     Smart Array P600
72     Smart Array P800
73     Smart Array E400
74     Smart Array P400i
75     Smart Array E200
76     Smart Array E200i
77     Smart Array E500
78     Smart Array P700m
79     Smart Array P212
80     Smart Array P410
81     Smart Array P410i
82     Smart Array P411
83     Smart Array P812
84     Smart Array P712m
85     Smart Array P711m
86 .fi
87 .SS Configuration details
88 To configure HP Smart Array controllers,
89 use the HP Array Configuration Utility
90 (either
91 .BR hpacuxe (8)
93 .BR hpacucli (8))
94 or the Offline ROM-based Configuration Utility (ORCA)
95 run from the Smart Array's option ROM at boot time.
96 .SH FILES
97 .SS Device nodes
98 The device naming scheme is as follows:
99 .PP
100 Major numbers:
102     104     cciss0
103     105     cciss1
104     106     cciss2
105     105     cciss3
106     108     cciss4
107     109     cciss5
108     110     cciss6
109     111     cciss7
111 Minor numbers:
114     b7 b6 b5 b4 b3 b2 b1 b0
115     |\-\-\-\-+\-\-\-\-| |\-\-\-\-+\-\-\-\-|
116          |           |
117          |           +\-\-\-\-\-\-\-\- Partition ID (0=wholedev, 1\-15 partition)
118          |
119          +\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\- Logical Volume number
122 The device naming scheme is:
124 li l.
125 /dev/cciss/c0d0 Controller 0, disk 0, whole device
126 /dev/cciss/c0d0p1       Controller 0, disk 0, partition 1
127 /dev/cciss/c0d0p2       Controller 0, disk 0, partition 2
128 /dev/cciss/c0d0p3       Controller 0, disk 0, partition 3
130 /dev/cciss/c1d1 Controller 1, disk 1, whole device
131 /dev/cciss/c1d1p1       Controller 1, disk 1, partition 1
132 /dev/cciss/c1d1p2       Controller 1, disk 1, partition 2
133 /dev/cciss/c1d1p3       Controller 1, disk 1, partition 3
135 .SS Files in /proc
136 The files
137 .I /proc/driver/cciss/cciss[0\-9]+
138 contain information about
139 the configuration of each controller.
140 For example:
142 .in +4n
144 $ \fBcd /proc/driver/cciss\fP
145 $ \fBls \-l\fP
146 total 0
147 -rw\-r\-\-r\-\- 1 root root 0 2010\-09\-10 10:38 cciss0
148 -rw\-r\-\-r\-\- 1 root root 0 2010\-09\-10 10:38 cciss1
149 -rw\-r\-\-r\-\- 1 root root 0 2010\-09\-10 10:38 cciss2
150 $ \fBcat cciss2\fP
151 cciss2: HP Smart Array P800 Controller
152 Board ID: 0x3223103c
153 Firmware Version: 7.14
154 IRQ: 16
155 Logical drives: 1
156 Current Q depth: 0
157 Current # commands on controller: 0
158 Max Q depth since init: 1
159 Max # commands on controller since init: 2
160 Max SG entries since init: 32
161 Sequential access devices: 0
163 cciss/c2d0:   36.38GB       RAID 0
167 .SS Files in /sys
169 .I /sys/bus/pci/devices/<dev>/ccissX/cXdY/model
170 Displays the SCSI INQUIRY page 0 model for logical drive
171 .I Y
172 of controller
173 .IR X .
175 .I /sys/bus/pci/devices/<dev>/ccissX/cXdY/rev
176 Displays the SCSI INQUIRY page 0 revision for logical drive
177 .I Y
178 of controller
179 .IR X .
181 .I /sys/bus/pci/devices/<dev>/ccissX/cXdY/unique_id
182 Displays the SCSI INQUIRY page 83 serial number for logical drive
183 .I Y
184 of controller
185 .IR X .
187 .I /sys/bus/pci/devices/<dev>/ccissX/cXdY/vendor
188 Displays the SCSI INQUIRY page 0 vendor for logical drive
189 .I Y
190 of controller
191 .IR X .
193 .I /sys/bus/pci/devices/<dev>/ccissX/cXdY/block:cciss!cXdY
194 A symbolic link to
195 .IR /sys/block/cciss!cXdY .
197 .I /sys/bus/pci/devices/<dev>/ccissX/rescan
198 When this file is written to, the driver rescans the controller
199 to discover any new, removed, or modified logical drives.
201 .I /sys/bus/pci/devices/<dev>/ccissX/resettable
202 A value of 1 displayed in this file indicates that
203 the "reset_devices=1" kernel parameter (used by
204 .BR kdump )
205 is honored by this controller.
206 A value of 0 indicates that the
207 "reset_devices=1" kernel parameter will not be honored.
208 Some models of Smart Array are not able to honor this parameter.
210 .I /sys/bus/pci/devices/<dev>/ccissX/cXdY/lunid
211 Displays the 8-byte LUN ID used to address logical drive
212 .I Y
213 of controller
214 .IR X .
216 .I /sys/bus/pci/devices/<dev>/ccissX/cXdY/raid_level
217 Displays the RAID level of logical drive
218 .I Y
219 of controller
220 .IR X .
222 .I /sys/bus/pci/devices/<dev>/ccissX/cXdY/usage_count
223 Displays the usage count (number of opens) of logical drive
224 .I Y
225 of controller
226 .IR X .
227 .SS SCSI tape drive and medium changer support
228 SCSI sequential access devices and medium changer devices are supported and
229 appropriate device nodes are automatically created (e.g.,
230 .IR /dev/st0 ,
231 .IR /dev/st1 ,
232 etc.; see
233 .BR st (4)
234 for more details.)
235 You must enable "SCSI tape drive support for Smart Array 5xxx" and
236 "SCSI support" in your kernel configuration to be able to use SCSI
237 tape drives with your Smart Array 5xxx controller.
239 Additionally, note that the driver will not engage the SCSI core at
240 init time.
241 The driver must be directed to dynamically engage the SCSI core via the
242 .I /proc
243 filesystem entry,
244 which the "block" side of the driver creates as
245 .I /proc/driver/cciss/cciss*
246 at run time.
247 This is because at driver init time,
248 the SCSI core may not yet be initialized (because the driver is a block
249 driver) and attempting to register it with the SCSI core in such a case
250 would cause a hang.
251 This is best done via an initialization script
252 (typically in
253 .IR /etc/init.d ,
254 but could vary depending on distribution).
255 For example:
257 .in +4n
259 for x in /proc/driver/cciss/cciss[0\-9]*
261     echo "engage scsi" > $x
262 done
266 Once the SCSI core is engaged by the driver, it cannot be disengaged
267 (except by unloading the driver, if it happens to be linked as a module.)
269 Note also that if no sequential access devices or medium changers are
270 detected, the SCSI core will not be engaged by the action of the above
271 script.
272 .SS Hot plug support for SCSI tape drives
273 Hot plugging of SCSI tape drives is supported, with some caveats.
275 .B cciss
276 driver must be informed that changes to the SCSI bus
277 have been made.
278 This may be done via the
279 .I /proc
280 filesystem.
281 For example:
283     echo "rescan" > /proc/scsi/cciss0/1
285 This causes the driver to:
287 .IP 1. 3
288 query the adapter about changes to the
289 physical SCSI buses and/or fiber channel arbitrated loop, and
290 .IP 2.
291 make note of any new or removed sequential access devices
292 or medium changers.
295 The driver will output messages indicating which
296 devices have been added or removed and the controller, bus, target, and
297 lun used to address each device.
298 The driver then notifies the SCSI midlayer
299 of these changes.
301 Note that the naming convention of the
302 .I /proc
303 filesystem entries
304 contains a number in addition to the driver name
305 (e.g., "cciss0"
306 instead of just "cciss", which you might expect).
308 Note:
309 .I Only
310 sequential access devices and medium changers are presented
311 as SCSI devices to the SCSI midlayer by the
312 .B cciss
313 driver.
314 Specifically, physical SCSI disk drives are
315 .I not
316 presented to the SCSI midlayer.
317 The only disk devices that are presented to the kernel are logical
318 drives that the array controller constructs from regions on
319 the physical drives.
320 The logical drives are presented to the block layer
321 (not to the SCSI midlayer).
322 It is important for the driver to prevent the kernel from accessing the
323 physical drives directly, since these drives are used by the array
324 controller to construct the logical drives.
325 .SS SCSI error handling for tape drives and medium changers
326 The Linux SCSI midlayer provides an error-handling protocol that
327 is initiated whenever a SCSI command fails to complete within a
328 certain amount of time (which can vary depending on the command).
330 .B cciss
331 driver participates in this protocol to some extent.
332 The normal protocol is a four-step process:
333 .IP * 3
334 First, the device is told to abort the command.
335 .IP *
336 If that doesn't work, the device is reset.
337 .IP *
338 If that doesn't work, the SCSI bus is reset.
339 .IP *
340 If that doesn't work, the host bus adapter is reset.
343 .B cciss
344 driver is a block
345 driver as well as a SCSI driver and only the tape drives and medium
346 changers are presented to the SCSI midlayer.
347 Furthermore, unlike more
348 straightforward SCSI drivers, disk I/O continues through the block
349 side during the SCSI error-recovery process.
350 Therefore, the
351 .B cciss
352 driver implements only the first two of these actions,
353 aborting the command, and resetting the device.
354 Note also that most tape drives will not oblige
355 in aborting commands, and sometimes it appears they will not even
356 obey a reset command, though in most circumstances they will.
357 If the command cannot be aborted and the device cannot be
358 reset, the device will be set offline.
360 In the event that the error-handling code is triggered and a tape drive is
361 successfully reset or the tardy command is successfully aborted, the
362 tape drive may still not allow I/O to continue until some command
363 is issued that positions the tape to a known position.
364 Typically you must rewind the tape (by issuing
365 .I "mt \-f /dev/st0 rewind"
366 for example) before I/O can proceed again to a tape drive that was reset.
367 .SH SEE ALSO
368 .BR hpsa (4),
369 .BR cciss_vol_status (8),
370 .BR hpacucli (8),
371 .BR hpacuxe (8)
373 .UR http://cciss.sf.net
374 .UE ,
376 .I Documentation/blockdev/cciss.txt
378 .I Documentation/ABI/testing/sysfs\-bus\-pci\-devices\-cciss
379 in the Linux kernel source tree
380 .\" .SH AUTHORS
381 .\" Don Brace, Steve Cameron, Chase Maupin, Mike Miller, Michael Ni,
382 .\" Charles White, Francis Wiran
383 .\" and probably some other people.