1CCISS(4)                   Linux Programmer's Manual                  CCISS(4)
2
3
4

NAME

6       cciss - HP Smart Array block driver
7

SYNOPSIS

9       modprobe cciss [ cciss_allow_hpsa=1 ]
10

DESCRIPTION

12       Note: This obsolete driver was removed from the kernel in version 4.14,
13       as it is superseded by the hpsa(4) driver in newer kernels.
14
15       cciss is a block driver for older HP Smart Array RAID controllers.
16
17   Options
18       cciss_allow_hpsa=1: This option prevents the cciss driver from attempt‐
19       ing to drive any controllers that the hpsa(4) driver is capable of con‐
20       trolling, which is to say, the  cciss  driver  is  restricted  by  this
21       option to the following controllers:
22
23           Smart Array 5300
24           Smart Array 5i
25           Smart Array 532
26           Smart Array 5312
27           Smart Array 641
28           Smart Array 642
29           Smart Array 6400
30           Smart Array 6400 EM
31           Smart Array 6i
32           Smart Array P600
33           Smart Array P400i
34           Smart Array E200i
35           Smart Array E200
36           Smart Array E200i
37           Smart Array E200i
38           Smart Array E200i
39           Smart Array E500
40
41   Supported hardware
42       The cciss driver supports the following Smart Array boards:
43
44           Smart Array 5300
45           Smart Array 5i
46           Smart Array 532
47           Smart Array 5312
48           Smart Array 641
49           Smart Array 642
50           Smart Array 6400
51           Smart Array 6400 U320 Expansion Module
52           Smart Array 6i
53           Smart Array P600
54           Smart Array P800
55           Smart Array E400
56           Smart Array P400i
57           Smart Array E200
58           Smart Array E200i
59           Smart Array E500
60           Smart Array P700m
61           Smart Array P212
62           Smart Array P410
63           Smart Array P410i
64           Smart Array P411
65           Smart Array P812
66           Smart Array P712m
67           Smart Array P711m
68
69   Configuration details
70       To configure HP Smart Array controllers, use the HP Array Configuration
71       Utility (either hpacuxe(8) or hpacucli(8))  or  the  Offline  ROM-based
72       Configuration  Utility  (ORCA) run from the Smart Array's option ROM at
73       boot time.
74

FILES

76   Device nodes
77       The device naming scheme is as follows:
78
79       Major numbers:
80
81           104     cciss0
82           105     cciss1
83           106     cciss2
84           105     cciss3
85           108     cciss4
86           109     cciss5
87           110     cciss6
88           111     cciss7
89
90       Minor numbers:
91
92           b7 b6 b5 b4 b3 b2 b1 b0
93           |----+----| |----+----|
94                |           |
95                |           +-------- Partition ID (0=wholedev, 1-15 partition)
96                |
97                +-------------------- Logical Volume number
98
99       The device naming scheme is:
100
101           /dev/cciss/c0d0         Controller 0, disk 0, whole device
102           /dev/cciss/c0d0p1       Controller 0, disk 0, partition 1
103           /dev/cciss/c0d0p2       Controller 0, disk 0, partition 2
104           /dev/cciss/c0d0p3       Controller 0, disk 0, partition 3
105
106           /dev/cciss/c1d1         Controller 1, disk 1, whole device
107           /dev/cciss/c1d1p1       Controller 1, disk 1, partition 1
108           /dev/cciss/c1d1p2       Controller 1, disk 1, partition 2
109           /dev/cciss/c1d1p3       Controller 1, disk 1, partition 3
110
111   Files in /proc
112       The files /proc/driver/cciss/cciss[0-9]+ contain information about  the
113       configuration of each controller.  For example:
114
115           $ cd /proc/driver/cciss
116           $ ls -l
117           total 0
118           -rw-r--r-- 1 root root 0 2010-09-10 10:38 cciss0
119           -rw-r--r-- 1 root root 0 2010-09-10 10:38 cciss1
120           -rw-r--r-- 1 root root 0 2010-09-10 10:38 cciss2
121           $ cat cciss2
122           cciss2: HP Smart Array P800 Controller
123           Board ID: 0x3223103c
124           Firmware Version: 7.14
125           IRQ: 16
126           Logical drives: 1
127           Current Q depth: 0
128           Current # commands on controller: 0
129           Max Q depth since init: 1
130           Max # commands on controller since init: 2
131           Max SG entries since init: 32
132           Sequential access devices: 0
133
134           cciss/c2d0:   36.38GB       RAID 0
135
136   Files in /sys
137       /sys/bus/pci/devices/<dev>/ccissX/cXdY/model
138              Displays  the  SCSI  INQUIRY page 0 model for logical drive Y of
139              controller X.
140
141       /sys/bus/pci/devices/<dev>/ccissX/cXdY/rev
142              Displays the SCSI INQUIRY page 0 revision for logical drive Y of
143              controller X.
144
145       /sys/bus/pci/devices/<dev>/ccissX/cXdY/unique_id
146              Displays  the  SCSI  INQUIRY  page  83 serial number for logical
147              drive Y of controller X.
148
149       /sys/bus/pci/devices/<dev>/ccissX/cXdY/vendor
150              Displays the SCSI INQUIRY page 0 vendor for logical drive  Y  of
151              controller X.
152
153       /sys/bus/pci/devices/<dev>/ccissX/cXdY/block:cciss!cXdY
154              A symbolic link to /sys/block/cciss!cXdY.
155
156       /sys/bus/pci/devices/<dev>/ccissX/rescan
157              When  this file is written to, the driver rescans the controller
158              to discover any new, removed, or modified logical drives.
159
160       /sys/bus/pci/devices/<dev>/ccissX/resettable
161              A  value  of  1  displayed  in  this  file  indicates  that  the
162              "reset_devices=1" kernel parameter (used by kdump) is honored by
163              this  controller.    A   value   of   0   indicates   that   the
164              "reset_devices=1"  kernel  parameter  will not be honored.  Some
165              models of Smart Array are not able to honor this parameter.
166
167       /sys/bus/pci/devices/<dev>/ccissX/cXdY/lunid
168              Displays the 8-byte LUN ID used to address logical  drive  Y  of
169              controller X.
170
171       /sys/bus/pci/devices/<dev>/ccissX/cXdY/raid_level
172              Displays the RAID level of logical drive Y of controller X.
173
174       /sys/bus/pci/devices/<dev>/ccissX/cXdY/usage_count
175              Displays the usage count (number of opens) of logical drive Y of
176              controller X.
177
178   SCSI tape drive and medium changer support
179       SCSI sequential access devices and medium changer devices are supported
180       and appropriate device nodes are automatically created (e.g., /dev/st0,
181       /dev/st1, etc.; see st(4) for more details.)   You  must  enable  "SCSI
182       tape  drive  support  for  Smart Array 5xxx" and "SCSI support" in your
183       kernel configuration to be able to use SCSI tape drives with your Smart
184       Array 5xxx controller.
185
186       Additionally,  note  that  the  driver will not engage the SCSI core at
187       init time.  The driver must be directed to dynamically engage the  SCSI
188       core  via  the  /proc  filesystem  entry, which the "block" side of the
189       driver creates as  /proc/driver/cciss/cciss*  at  run  time.   This  is
190       because  at  driver init time, the SCSI core may not yet be initialized
191       (because the driver is a block driver) and attempting  to  register  it
192       with  the  SCSI  core  in such a case would cause a hang.  This is best
193       done via an initialization script (typically in /etc/init.d, but  could
194       vary depending on distribution).  For example:
195
196           for x in /proc/driver/cciss/cciss[0-9]*
197           do
198               echo "engage scsi" > $x
199           done
200
201       Once  the  SCSI  core is engaged by the driver, it cannot be disengaged
202       (except by unloading the driver, if it happens to be linked as  a  mod‐
203       ule.)
204
205       Note  also  that if no sequential access devices or medium changers are
206       detected, the SCSI core will not be engaged by the action of the  above
207       script.
208
209   Hot plug support for SCSI tape drives
210       Hot  plugging of SCSI tape drives is supported, with some caveats.  The
211       cciss driver must be informed that changes to the SCSI  bus  have  been
212       made.  This may be done via the /proc filesystem.  For example:
213
214           echo "rescan" > /proc/scsi/cciss0/1
215
216       This causes the driver to:
217
218              1. query  the  adapter  about changes to the physical SCSI buses
219                 and/or fibre channel arbitrated loop, and
220
221              2. make note of any new or removed sequential access devices  or
222                 medium changers.
223
224       The  driver  will  output  messages  indicating which devices have been
225       added or removed and the controller,  bus,  target,  and  lun  used  to
226       address  each  device.   The  driver then notifies the SCSI midlayer of
227       these changes.
228
229       Note that the naming convention of the /proc  filesystem  entries  con‐
230       tains  a  number in addition to the driver name (e.g., "cciss0" instead
231       of just "cciss", which you might expect).
232
233       Note: Only sequential access devices and medium changers are  presented
234       as  SCSI  devices  to  the SCSI midlayer by the cciss driver.  Specifi‐
235       cally, physical SCSI disk drives are not presented  to  the  SCSI  mid‐
236       layer.  The only disk devices that are presented to the kernel are log‐
237       ical drives that the array controller constructs from  regions  on  the
238       physical  drives.   The logical drives are presented to the block layer
239       (not to the SCSI midlayer).  It is important for the driver to  prevent
240       the  kernel  from  accessing  the physical drives directly, since these
241       drives are used by  the  array  controller  to  construct  the  logical
242       drives.
243
244   SCSI error handling for tape drives and medium changers
245       The  Linux  SCSI  midlayer  provides an error-handling protocol that is
246       initiated whenever a SCSI command fails to complete  within  a  certain
247       amount  of  time  (which can vary depending on the command).  The cciss
248       driver participates in this protocol to some extent.  The normal proto‐
249       col is a four-step process:
250
251       *  First, the device is told to abort the command.
252
253       *  If that doesn't work, the device is reset.
254
255       *  If that doesn't work, the SCSI bus is reset.
256
257       *  If that doesn't work, the host bus adapter is reset.
258
259       The  cciss  driver  is a block driver as well as a SCSI driver and only
260       the tape drives and medium changers are presented to the SCSI midlayer.
261       Furthermore, unlike more straightforward SCSI drivers, disk I/O contin‐
262       ues through the block side  during  the  SCSI  error-recovery  process.
263       Therefore,  the  cciss  driver  implements  only the first two of these
264       actions, aborting the command, and resetting  the  device.   Note  also
265       that  most  tape drives will not oblige in aborting commands, and some‐
266       times it appears they will not even obey a  reset  command,  though  in
267       most circumstances they will.  If the command cannot be aborted and the
268       device cannot be reset, the device will be set offline.
269
270       In the event that the error-handling code is triggered and a tape drive
271       is successfully reset or the tardy command is successfully aborted, the
272       tape drive may still not allow I/O to continue until  some  command  is
273       issued that positions the tape to a known position.  Typically you must
274       rewind the tape (by issuing mt -f /dev/st0 rewind for  example)  before
275       I/O can proceed again to a tape drive that was reset.
276

SEE ALSO

278       hpsa(4), cciss_vol_status(8), hpacucli(8), hpacuxe(8)
279
280http://cciss.sf.net⟩,  and  Documentation/blockdev/cciss.txt and Docu‐
281       mentation/ABI/testing/sysfs-bus-pci-devices-cciss in the  Linux  kernel
282       source tree
283

COLOPHON

285       This  page  is  part of release 4.16 of the Linux man-pages project.  A
286       description of the project, information about reporting bugs,  and  the
287       latest     version     of     this    page,    can    be    found    at
288       https://www.kernel.org/doc/man-pages/.
289
290
291
292Linux                             2017-09-15                          CCISS(4)
Impressum