1cciss(4)                   Kernel Interfaces 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 in Linux 4.14, as it is super‐
13       seded 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  op‐
21       tion 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  "re‐
162              set_devices=1"  kernel  parameter  (used by kdump) is honored by
163              this controller.  A value of 0  indicates  that  the  "reset_de‐
164              vices=1"  kernel  parameter will not be honored.  Some models of
165              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  be‐
190       cause  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 fiber channel arbitrated loop, and
220
221              (2)  make note of any new or removed sequential  access  devices
222                   or 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  ad‐
226       dress each device.  The driver then notifies the SCSI midlayer of these
227       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       (1)  First, the device is told to abort the command.
252
253       (2)  If that doesn't work, the device is reset.
254
255       (3)  If that doesn't work, the SCSI bus is reset.
256
257       (4)  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 ac‐
264       tions, aborting the command, and resetting the device.  Note also  that
265       most tape drives will not oblige in aborting commands, and sometimes it
266       appears they will not even obey a reset command, though in most circum‐
267       stances  they  will.   If  the command cannot be aborted and the device
268       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
284
285
286Linux man-pages 6.04              2023-04-03                          cciss(4)
Impressum