mirror of
https://github.com/SCST-project/scst.git
synced 2026-05-19 19:51:27 +00:00
Merge branch 'svn-trunk'
This commit is contained in:
@@ -94,13 +94,13 @@ And on SUSE systems these packages can be installed by running the following com
|
||||
from the <a href="http://scst.sourceforge.net/downloads.html">SCST
|
||||
downloads page</a> or from the SCST Subversion source code
|
||||
repository.<br><br>
|
||||
|
||||
|
||||
In what follows it is assumed that the SCST trunk has been retrieved
|
||||
via Subversion. Installing a released SCST version is identical to
|
||||
installing the trunk after all downloaded SCST source code archives have
|
||||
been extracted in a single directory. The structure of that directory will
|
||||
be identical to that of the SCST trunk.
|
||||
|
||||
|
||||
<pre>[root@proj ]# svn co https://svn.code.sf.net/p/scst/svn/trunk scst</pre>
|
||||
|
||||
After the above command finished a directory called 'scst' will have been
|
||||
@@ -133,14 +133,14 @@ Instructions for obtaining a distribution-specific kernel source tree vary. An e
|
||||
<pre>[root@proj linux ]# pwd
|
||||
/usr/src/linux
|
||||
[root@proj linux ]# make menuconfig</pre>
|
||||
|
||||
|
||||
If you have built a 32-bit kernel make sure to disable HIGHMEM4G and
|
||||
HIGHMEM64G, i.e.
|
||||
<pre>[root@proj linux ]# grep -i highmem .config
|
||||
CONFIG_NOHIGHMEM=y
|
||||
# CONFIG_HIGHMEM4G is not set
|
||||
# CONFIG_HIGHMEM64G is not set</pre>
|
||||
|
||||
|
||||
If you have built a 32-bit kernel on a system with more than 1GB of memory,
|
||||
consider to change CONFIG_VMSPLIT option to an appropriate value.
|
||||
</li>
|
||||
@@ -178,7 +178,7 @@ Unload the qla2xxx kernel module provided by your Linux distribution and blackli
|
||||
Verify that compilation and installation succeeded:
|
||||
<pre>[root@proj scst]# ls -l /lib/modules/`uname -r`/extra/qla2*
|
||||
-rw-r--r-- 1 root root 36756 Jun 20 18:46 qla2x00tgt.ko
|
||||
-rw-r--r-- 1 root root 160192 Jun 20 18:46 qla2xxx_scst.ko
|
||||
-rw-r--r-- 1 root root 160192 Jun 20 18:46 qla2xxx_scst.ko
|
||||
</pre>
|
||||
</li>
|
||||
|
||||
@@ -194,7 +194,7 @@ Unload the qla2xxx kernel module provided by your Linux distribution and blackli
|
||||
total 232
|
||||
drwxr-xr-x 2 root root 4096 Jun 20 18:43 dev_handlers
|
||||
-rw-r--r-- 1 root root 36756 Jun 20 18:46 qla2x00tgt.ko
|
||||
-rw-r--r-- 1 root root 160192 Jun 20 18:46 qla2xxx_scst.ko
|
||||
-rw-r--r-- 1 root root 160192 Jun 20 18:46 qla2xxx_scst.ko
|
||||
-rw-r--r-- 1 root root 190848 Jun 20 18:43 scst.ko
|
||||
|
||||
[root@proj scst]# ls -l /lib/modules/`uname -r`/extra/dev_handlers
|
||||
@@ -208,7 +208,7 @@ total 192
|
||||
-rw-r--r-- 1 root root 12563 Jun 20 18:43 scst_tape.ko
|
||||
-rw-r--r-- 1 root root 37937 Jun 20 18:43 scst_user.ko
|
||||
-rw-r--r-- 1 root root 50194 Jun 20 18:43 scst_vdisk.ko</pre>
|
||||
|
||||
|
||||
where:
|
||||
<ul>
|
||||
<li>scst - SCST itself.</li>
|
||||
@@ -313,13 +313,13 @@ Collecting current configuration: done.
|
||||
|
||||
-> Checking configuration file 'qq' for errors.
|
||||
-> Done, 0 warnings found.
|
||||
|
||||
|
||||
-> Opening device 'disk1' using handler 'vdisk_fileio': done.
|
||||
-> Adding device 'disk1' at LUN 0 to driver/target 'qla2x00t/25:00:00:f0:98:87:92:f3': done.
|
||||
-> Enabling driver/target 'qla2x00t/25:00:00:f0:98:87:92:f3': done.
|
||||
|
||||
|
||||
All done.</pre>
|
||||
|
||||
|
||||
|
||||
The same can be done directly via the sysfs interface of SCST:
|
||||
<pre>
|
||||
@@ -376,4 +376,4 @@ where X is the host number.
|
||||
</ol>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
</html>
|
||||
|
||||
@@ -107,7 +107,7 @@ For example, this will cause problems in the following situation:
|
||||
7. scst_send_to_midlev returns with SCST_CMD_STATE_RES_NEED_THREAD
|
||||
8. Now, the scst_process_active_cmd will try to reschedule command 0x8000100
|
||||
which is already destroyed at this point !
|
||||
|
||||
|
||||
Can anyone on the list confirm my guess? Or, this situation should never
|
||||
happen because of some other condition which I may have missed? Right
|
||||
now I can't think of any of simple methods to work around the issue,
|
||||
@@ -124,104 +124,104 @@ I have two machines (SCST targets) with the following parameters:
|
||||
- Linux 2.6.21.3, running in 64 bit mode with 16G RAM
|
||||
- SCST trunk version
|
||||
|
||||
On the client side there is a Solaris 10 U3 machine, with the same (chip
|
||||
On the client side there is a Solaris 10 U3 machine, with the same (chip
|
||||
wise) Qlogic controller.
|
||||
|
||||
There is an FC switch between the three machines, and each of the
|
||||
targets are zoned to the client's port in a one-by-one manner, so HBA
|
||||
There is an FC switch between the three machines, and each of the
|
||||
targets are zoned to the client's port in a one-by-one manner, so HBA
|
||||
port 1 sees only target 1 and port 2 sees only target 2.
|
||||
|
||||
The targets are configured with two large sparse files on XFS (8 TB
|
||||
The targets are configured with two large sparse files on XFS (8 TB
|
||||
each, with dd if=/dev/zero of=file bs=1M count=0 seek=8388608).
|
||||
|
||||
In Solaris I do various tests with SVM (Sun's built in volume manager)
|
||||
In Solaris I do various tests with SVM (Sun's built in volume manager)
|
||||
and multiterabyte UFS. Occasionally, there are some strange write
|
||||
errors, where the volume manager drops its volumes and without a VM, a
|
||||
simple UFS fs write can fail too.
|
||||
|
||||
I see various errors logged by the kernel (Solaris'), these are some
|
||||
I see various errors logged by the kernel (Solaris'), these are some
|
||||
examples, both with and without SVM:
|
||||
Jun 21 10:42:14 solaris fctl: [ID 517869 kern.warning] WARNING:
|
||||
Jun 21 10:42:14 solaris fctl: [ID 517869 kern.warning] WARNING:
|
||||
fp(1)::GPN_ID for D_ID=621200 failed
|
||||
Jun 21 10:42:14 solaris fctl: [ID 517869 kern.warning] WARNING:
|
||||
fp(1)::N_x Port with D_ID=621200, PWWN=210000e08b944419 disappeared from
|
||||
Jun 21 10:42:14 solaris fctl: [ID 517869 kern.warning] WARNING:
|
||||
fp(1)::N_x Port with D_ID=621200, PWWN=210000e08b944419 disappeared from
|
||||
fabric
|
||||
Jun 21 10:42:53 solaris scsi: [ID 107833 kern.warning] WARNING:
|
||||
/pci@1,0/pci1022,7450@a/pcie11,105@1,1/fp@0,0/disk@w210000e08b944419,0
|
||||
Jun 21 10:42:53 solaris scsi: [ID 107833 kern.warning] WARNING:
|
||||
/pci@1,0/pci1022,7450@a/pcie11,105@1,1/fp@0,0/disk@w210000e08b944419,0
|
||||
(sd1):
|
||||
Jun 21 10:42:53 solaris SCSI transport failed: reason
|
||||
Jun 21 10:42:53 solaris SCSI transport failed: reason
|
||||
'tran_err': retrying command
|
||||
Jun 21 10:43:06 solaris scsi: [ID 107833 kern.warning] WARNING:
|
||||
/pci@1,0/pci1022,7450@a/pcie11,105@1,1/fp@0,0/disk@w210000e08b944419,0
|
||||
Jun 21 10:43:06 solaris scsi: [ID 107833 kern.warning] WARNING:
|
||||
/pci@1,0/pci1022,7450@a/pcie11,105@1,1/fp@0,0/disk@w210000e08b944419,0
|
||||
(sd1):
|
||||
Jun 21 10:43:06 solaris SCSI transport failed: reason 'timeout':
|
||||
Jun 21 10:43:06 solaris SCSI transport failed: reason 'timeout':
|
||||
retrying command
|
||||
Jun 21 10:43:13 solaris scsi: [ID 107833 kern.notice] Device is gone
|
||||
Jun 21 10:43:13 solaris scsi: [ID 107833 kern.warning] WARNING:
|
||||
/pci@1,0/pci1022,7450@a/pcie11,105@1,1/fp@0,0/disk@w210000e08b944419,0
|
||||
Jun 21 10:43:13 solaris scsi: [ID 107833 kern.warning] WARNING:
|
||||
/pci@1,0/pci1022,7450@a/pcie11,105@1,1/fp@0,0/disk@w210000e08b944419,0
|
||||
(sd1):
|
||||
Jun 21 10:43:13 solaris transport rejected fatal error
|
||||
Jun 21 10:43:13 solaris md_stripe: [ID 641072 kern.warning] WARNING: md:
|
||||
Jun 21 10:43:13 solaris md_stripe: [ID 641072 kern.warning] WARNING: md:
|
||||
d10: write error on /dev/dsk/c2t210000E08B944419d0s6
|
||||
Jun 21 10:43:13 solaris last message repeated 9 times
|
||||
Jun 21 10:43:13 solaris scsi: [ID 243001 kern.info]
|
||||
Jun 21 10:43:13 solaris scsi: [ID 243001 kern.info]
|
||||
/pci@1,0/pci1022,7450@a/pcie11,105@1,1/fp@0,0 (fcp1):
|
||||
Jun 21 10:43:13 solaris offlining lun=0 (trace=0), target=621200
|
||||
Jun 21 10:43:13 solaris offlining lun=0 (trace=0), target=621200
|
||||
(trace=2800004)
|
||||
Jun 21 10:43:13 solaris ufs: [ID 702911 kern.warning] WARNING: Error
|
||||
Jun 21 10:43:13 solaris ufs: [ID 702911 kern.warning] WARNING: Error
|
||||
writing master during ufs log roll
|
||||
Jun 21 10:43:13 solaris ufs: [ID 127457 kern.warning] WARNING: ufs log
|
||||
Jun 21 10:43:13 solaris ufs: [ID 127457 kern.warning] WARNING: ufs log
|
||||
for /mnt changed state to Error
|
||||
Jun 21 10:43:13 solaris ufs: [ID 616219 kern.warning] WARNING: Please
|
||||
Jun 21 10:43:13 solaris ufs: [ID 616219 kern.warning] WARNING: Please
|
||||
umount(1M) /mnt and run fsck(1M)
|
||||
Jun 21 11:08:55 solaris scsi: [ID 107833 kern.warning] WARNING:
|
||||
/pci@1,0/pci1022,7450@a/pcie11,105@1,1/fp@0,0/disk@w210000e08b944419,0
|
||||
Jun 21 11:08:55 solaris scsi: [ID 107833 kern.warning] WARNING:
|
||||
/pci@1,0/pci1022,7450@a/pcie11,105@1,1/fp@0,0/disk@w210000e08b944419,0
|
||||
(sd1):
|
||||
Jun 21 11:08:55 solaris offline or reservation conflict
|
||||
Jun 21 11:09:41 solaris scsi: [ID 107833 kern.warning] WARNING:
|
||||
/pci@1,0/pci1022,7450@a/pcie11,105@1,1/fp@0,0/disk@w210000e08b944419,0
|
||||
Jun 21 11:09:41 solaris scsi: [ID 107833 kern.warning] WARNING:
|
||||
/pci@1,0/pci1022,7450@a/pcie11,105@1,1/fp@0,0/disk@w210000e08b944419,0
|
||||
(sd1):
|
||||
Jun 21 11:09:41 solaris offline or reservation conflict
|
||||
Jun 21 11:09:41 solaris scsi: [ID 107833 kern.warning] WARNING:
|
||||
/pci@1,0/pci1022,7450@a/pcie11,105@1,1/fp@0,0/disk@w210000e08b944419,0
|
||||
Jun 21 11:09:41 solaris scsi: [ID 107833 kern.warning] WARNING:
|
||||
/pci@1,0/pci1022,7450@a/pcie11,105@1,1/fp@0,0/disk@w210000e08b944419,0
|
||||
(sd1):
|
||||
Jun 21 11:09:41 solaris offline or reservation conflict
|
||||
Jun 21 11:09:41 solaris scsi: [ID 107833 kern.warning] WARNING:
|
||||
/pci@1,0/pci1022,7450@a/pcie11,105@1,1/fp@0,0/disk@w210000e08b944419,0
|
||||
Jun 21 11:09:41 solaris scsi: [ID 107833 kern.warning] WARNING:
|
||||
/pci@1,0/pci1022,7450@a/pcie11,105@1,1/fp@0,0/disk@w210000e08b944419,0
|
||||
(sd1):
|
||||
Jun 21 11:09:41 solaris i/o to invalid geometry
|
||||
Jun 21 11:09:41 solaris scsi: [ID 107833 kern.warning] WARNING:
|
||||
/pci@1,0/pci1022,7450@a/pcie11,105@1,1/fp@0,0/disk@w210000e08b944419,0
|
||||
Jun 21 11:09:41 solaris scsi: [ID 107833 kern.warning] WARNING:
|
||||
/pci@1,0/pci1022,7450@a/pcie11,105@1,1/fp@0,0/disk@w210000e08b944419,0
|
||||
(sd1):
|
||||
Jun 21 11:09:41 solaris offline or reservation conflict
|
||||
Jun 21 11:09:41 solaris scsi: [ID 107833 kern.warning] WARNING:
|
||||
/pci@1,0/pci1022,7450@a/pcie11,105@1,1/fp@0,0/disk@w210000e08b944419,0
|
||||
Jun 21 11:09:41 solaris scsi: [ID 107833 kern.warning] WARNING:
|
||||
/pci@1,0/pci1022,7450@a/pcie11,105@1,1/fp@0,0/disk@w210000e08b944419,0
|
||||
(sd1):
|
||||
Jun 21 11:09:41 solaris i/o to invalid geometry
|
||||
Jun 21 11:09:41 solaris scsi: [ID 107833 kern.warning] WARNING:
|
||||
/pci@1,0/pci1022,7450@a/pcie11,105@1,1/fp@0,0/disk@w210000e08b944419,0
|
||||
Jun 21 11:09:41 solaris scsi: [ID 107833 kern.warning] WARNING:
|
||||
/pci@1,0/pci1022,7450@a/pcie11,105@1,1/fp@0,0/disk@w210000e08b944419,0
|
||||
(sd1):
|
||||
Jun 21 11:09:41 solaris offline or reservation conflict
|
||||
Jun 21 11:09:41 solaris scsi: [ID 107833 kern.warning] WARNING:
|
||||
/pci@1,0/pci1022,7450@a/pcie11,105@1,1/fp@0,0/disk@w210000e08b944419,0
|
||||
Jun 21 11:09:41 solaris scsi: [ID 107833 kern.warning] WARNING:
|
||||
/pci@1,0/pci1022,7450@a/pcie11,105@1,1/fp@0,0/disk@w210000e08b944419,0
|
||||
(sd1):
|
||||
Jun 21 11:09:41 solaris i/o to invalid geometry
|
||||
Jun 21 11:09:43 solaris scsi: [ID 107833 kern.warning] WARNING:
|
||||
/pci@1,0/pci1022,7450@a/pcie11,105@1,1/fp@0,0/disk@w210000e08b944419,0
|
||||
Jun 21 11:09:43 solaris scsi: [ID 107833 kern.warning] WARNING:
|
||||
/pci@1,0/pci1022,7450@a/pcie11,105@1,1/fp@0,0/disk@w210000e08b944419,0
|
||||
(sd1):
|
||||
Jun 21 11:09:43 solaris offline or reservation conflict
|
||||
Jun 21 11:09:43 solaris scsi: [ID 107833 kern.warning] WARNING:
|
||||
/pci@1,0/pci1022,7450@a/pcie11,105@1,1/fp@0,0/disk@w210000e08b944419,0
|
||||
Jun 21 11:09:43 solaris scsi: [ID 107833 kern.warning] WARNING:
|
||||
/pci@1,0/pci1022,7450@a/pcie11,105@1,1/fp@0,0/disk@w210000e08b944419,0
|
||||
(sd1):
|
||||
Jun 21 11:09:43 solaris SYNCHRONIZE CACHE command failed (5)
|
||||
|
||||
I don't see anything in the dmesg on the target side.
|
||||
|
||||
After these errors SCST seems to be dead. I can't unload its modules and
|
||||
After these errors SCST seems to be dead. I can't unload its modules and
|
||||
can't communicate it via /proc.
|
||||
A simple cat vdisk just waits and waits.
|
||||
|
||||
Could you please help? What should I set/collect/send in this case to
|
||||
Could you please help? What should I set/collect/send in this case to
|
||||
help resolving this issue?
|
||||
|
||||
======================================================================
|
||||
|
||||
@@ -91,7 +91,7 @@ Summary of changes between versions 0.9.5 and 1.0.0
|
||||
- Updated to work on 2.6.23.x
|
||||
|
||||
- Fixes a race, when an event comes on the driver unload, so DPC thread
|
||||
will try to use already half destroyed data.
|
||||
will try to use already half destroyed data.
|
||||
|
||||
- Fixed problem with SNS, not advertising target mode.
|
||||
|
||||
@@ -116,7 +116,7 @@ Summary of changes between versions 0.9.3.8 and 0.9.5
|
||||
- Ported to 2.6.17.x and 2.6.18.
|
||||
|
||||
- Problem with not found WWN on the first login attempt fixed.
|
||||
|
||||
|
||||
- Updated for the latest SCST interfaces changes.
|
||||
|
||||
- Cleanups and minor bug fixes.
|
||||
@@ -130,7 +130,7 @@ Patch vs: qla2xxx v8.01.03-k (in kernels 2.6.15.x+, including 2.6.16-prex)
|
||||
which lead to only 1Gbps speed of 23xx cards.
|
||||
|
||||
- Removed all code that deals with "use_sg == 0" data, since staring
|
||||
from SCST 0.9.5 commands data are always in SG-vector.
|
||||
from SCST 0.9.5 commands data are always in SG-vector.
|
||||
|
||||
- Fixed hungup on the module unload.
|
||||
|
||||
@@ -156,20 +156,20 @@ Summary of changes between versions 0.9.3.5 and 0.9.3.6
|
||||
Patch vs: qla2xxx v8.01.03-k (in kernels 2.6.15.x+, including 2.6.16-prex)
|
||||
|
||||
- Include MEMSET, MEMCPY definitions
|
||||
|
||||
|
||||
- Patched to compile on 64bit cleanly (thanks to Ming Zhang for patch)
|
||||
|
||||
- Fixed possible race during initial enabling of Target Mode (thanks to
|
||||
- Fixed possible race during initial enabling of Target Mode (thanks to
|
||||
Mark Buechler for finding)
|
||||
|
||||
|
||||
|
||||
Summary of changes between versions 0.9.3.4 and 0.9.3.5
|
||||
-------------------------------------------------------
|
||||
Patch vs: qla2xxx v8.01.03-k (in kernels 2.6.15.x)
|
||||
|
||||
|
||||
- Reset chip when switching from initiator to initiator/target and back
|
||||
implemented
|
||||
|
||||
|
||||
- Use 2K loop_id's for 23xx chips and thus change how sessions are
|
||||
tracked.
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
.\" -*- nroff -*-
|
||||
.\" Copyright 2011 Bart Van Assche <bvanassche@acm.org>. All rights reserved.
|
||||
.\" Permission is granted to copy, distribute and/or modify this document
|
||||
.\" under the terms of the GNU General Public License, version 2 (GPLv2).
|
||||
.\" under the terms of the GNU General Public License, version 2 (GPLv2).
|
||||
.TH scstadmin 1 "July 2011" "scstadmin 2.0.0"
|
||||
.SH NAME
|
||||
scstadmin \- administer the configuration of SCST
|
||||
@@ -264,7 +264,7 @@ Set one or more attributes of the specified ALUA target.
|
||||
.B scstadmin -open_dev disk01 -handler vdisk_fileio -attributes filename=/vdisks/disk01.dsk,read_only
|
||||
Lets SCST open the file /vdisks/disk01.dsk as a disk.
|
||||
.TP
|
||||
.B scstadmin -set_dev_attr disk01 -attributes t10_dev_id=0x2345
|
||||
.B scstadmin -set_dev_attr disk01 -attributes t10_dev_id=0x2345
|
||||
Sets the T10 device id of SCST device disk01
|
||||
.TP
|
||||
.B scstadmin -add_group host01 -driver qla2x00t -target 50:06:0B:00:00:39:71:78
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
.\" -*- nroff -*-
|
||||
.\" Copyright 2011 Bart Van Assche <bvanassche@acm.org>. All rights reserved.
|
||||
.\" Permission is granted to copy, distribute and/or modify this document
|
||||
.\" under the terms of the GNU General Public License, version 2 (GPLv2).
|
||||
.\" under the terms of the GNU General Public License, version 2 (GPLv2).
|
||||
.TH scst 5 "July 2011" "scstadmin 2.0.0"
|
||||
.SH NAME
|
||||
/etc/default/scst \- Configuration file read by /etc/init.d/scst.
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
.\" -*- nroff -*-
|
||||
.\" Copyright 2011 Bart Van Assche <bvanassche@acm.org>. All rights reserved.
|
||||
.\" Permission is granted to copy, distribute and/or modify this document
|
||||
.\" under the terms of the GNU General Public License, version 2 (GPLv2).
|
||||
.\" under the terms of the GNU General Public License, version 2 (GPLv2).
|
||||
.TH scst.conf 5 "July 2011" "scstadmin 2.0.0"
|
||||
.SH NAME
|
||||
scst.conf \- Main SCST configuration file.
|
||||
@@ -56,7 +56,7 @@ quadruplet referring to a local SCSI device or an SCST device name. A
|
||||
.B DEVICE
|
||||
section is a subsection of a
|
||||
.B HANDLER
|
||||
section.
|
||||
section.
|
||||
.TP
|
||||
.B "TARGET_DRIVER <driver>"
|
||||
Defines target driver attributes and also which targets are associated with
|
||||
@@ -371,7 +371,7 @@ module parameter. Parameters for an SCST kernel module can be configured in
|
||||
options ib_srpt use_node_guid_in_target_name=1
|
||||
.SH FILES
|
||||
.IP "/etc/scst.conf"
|
||||
The configuration file read by
|
||||
The configuration file read by
|
||||
.BR scstadmin (1).
|
||||
.SH "SEE ALSO"
|
||||
scstadmin(1), scst(5), modprobe.d(5)
|
||||
|
||||
@@ -2251,7 +2251,7 @@ sub addLun {
|
||||
SCST_LUNS, SCST_MGMT_IO);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
$cmd .= "add $device $lun $o_string";
|
||||
|
||||
my $io = new IO::File $path, O_WRONLY;
|
||||
@@ -2549,7 +2549,7 @@ sub devices {
|
||||
|
||||
my $isdev = (new_sysfs_interface() ||
|
||||
-d make_path(SCST_DEVICES_DIR(), $device));
|
||||
if ($isdev && (!defined($handler) ||
|
||||
if ($isdev && (!defined($handler) ||
|
||||
$handler eq $self->deviceHandler($device))) {
|
||||
push @devices, $device;
|
||||
}
|
||||
|
||||
@@ -57,7 +57,7 @@ sub closeDevs {
|
||||
}
|
||||
$cmd .= "$scstadmin -noprompt -handler vdisk_nullio -close_dev $dev";
|
||||
}
|
||||
return system("{ echo " . '"' . "$cmd" . '"' . "; $cmd; } $redirect");
|
||||
return system("{ echo " . '"' . "$cmd" . '"' . "; $cmd; } $redirect");
|
||||
}
|
||||
|
||||
sub closeDevTest {
|
||||
|
||||
@@ -32,7 +32,7 @@ Query Operations
|
||||
-list_driver [<driver>] : List all available drivers or specific <driver>.
|
||||
-list_target [<target>] : List all available targets or specific <target>.
|
||||
[-driver <driver>]
|
||||
-list_group [<group>] : List all configured groups, or specific <group>.
|
||||
-list_group [<group>] : List all configured groups, or specific <group>.
|
||||
[-driver <driver>]
|
||||
[-target <target>]
|
||||
|
||||
@@ -68,7 +68,7 @@ Set Attribute Operations
|
||||
-attributes <p=v,...>
|
||||
-set_hnd_attr <hndlr> : Sets handler attribute(s) <p> to value <v>.
|
||||
-attributes <p=v,...>
|
||||
-set_dev_attr <device> : Sets device attributes(s) <p> to value <v>.
|
||||
-set_dev_attr <device> : Sets device attributes(s) <p> to value <v>.
|
||||
-attributes <p=v,...>
|
||||
-set_drv_attr <driver> : Sets driver attribute(s) <p> to value <v>.
|
||||
-attributes <p=v,...>
|
||||
@@ -129,7 +129,7 @@ Device Group Operations
|
||||
-add_dgrp_dev <device>
|
||||
-dev_group <dgroup> : Add device <device> to device group <dgrp>.
|
||||
-rem_dgrp_dev <device>
|
||||
-dev_group <dgroup> : Remove device <device> from device group <dgrp>.
|
||||
-dev_group <dgroup> : Remove device <device> from device group <dgrp>.
|
||||
-add_tgrp <tgrp>
|
||||
-tgt_group <tgrp> : Add target group <tgrp> to device group <dgrp>.
|
||||
-rem_tgrp <tgrp>
|
||||
@@ -154,7 +154,7 @@ Group Operations
|
||||
-rem_group <group> : Remove a group from a given driver & target.
|
||||
-driver <driver>
|
||||
-target <target>
|
||||
|
||||
|
||||
Initiator Operations
|
||||
-add_init <init> : Adds an initiator to a group.
|
||||
-driver <driver>
|
||||
@@ -226,12 +226,12 @@ Examples:
|
||||
-attributes filename=/vdisks/disk01.dsk,read_only
|
||||
|
||||
Setting the T10 Device ID of a device
|
||||
scstadmin -set_dev_attr DISK01 -attributes t10_dev_id=0x2345
|
||||
scstadmin -set_dev_attr DISK01 -attributes t10_dev_id=0x2345
|
||||
|
||||
Create a new security group:
|
||||
scstadmin -add_group HOST01 -driver qla2x00t \
|
||||
-target 50:06:0B:00:00:39:71:78
|
||||
|
||||
|
||||
Add a LUN to a group:
|
||||
scstadmin -add_lun 1 -driver qla2x00t -target 50:06:0B:00:00:39:71:78 \
|
||||
-group HOST01 -device DISK01 -attributes read_only=1
|
||||
@@ -1410,7 +1410,7 @@ sub readWorkingConfig {
|
||||
|
||||
foreach my $dgroup (@{$dgroups}) {
|
||||
my ($dgd, $errorString) = $SCST->deviceGroupDevices($dgroup);
|
||||
immediateExit($errorString);
|
||||
immediateExit($errorString);
|
||||
$CURRENT{'dgroups'}->{$dgroup}->{'devices'} = $dgd;
|
||||
my ($tgroups, $errorString) = $SCST->targetGroups($dgroup);
|
||||
immediateExit($errorString);
|
||||
@@ -1472,7 +1472,7 @@ sub serializeKeyAttr {
|
||||
my $attributes = shift;
|
||||
my $attr_filter = shift;
|
||||
my $result;
|
||||
|
||||
|
||||
foreach my $attribute (sort keys %{$attributes}) {
|
||||
next if defined($$attributes{$attribute}->{'set'});
|
||||
next if ($$attributes{$attribute}->{'static'} &&
|
||||
@@ -1508,7 +1508,7 @@ sub serializeNkAttr {
|
||||
my $attributes = shift;
|
||||
my $attr_filter = shift;
|
||||
my $result;
|
||||
|
||||
|
||||
foreach my $attribute (sort keys %{$attributes}) {
|
||||
if (!defined($$attributes{$attribute}->{'set'})
|
||||
&& (!$$attributes{$attribute}->{'static'}
|
||||
@@ -2721,7 +2721,7 @@ sub applyTargetAssignments {
|
||||
|
||||
if (defined($$attributes{'HW_TARGET'})) {
|
||||
condExit("Hardware target '$target' for driver '$driver' does not exist.");
|
||||
}
|
||||
}
|
||||
|
||||
filterCreateAttributes($possible, $attributes, FALSE);
|
||||
|
||||
@@ -2994,7 +2994,7 @@ sub removeVirtualTarget {
|
||||
print "done.\n";
|
||||
|
||||
return $rc;
|
||||
}
|
||||
}
|
||||
|
||||
####################################################################
|
||||
|
||||
@@ -3019,7 +3019,7 @@ sub listHandlers {
|
||||
|
||||
foreach my $handler (@{$handlers}) {
|
||||
print "\t$handler\n";
|
||||
}
|
||||
}
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
@@ -3379,9 +3379,9 @@ sub listSessions {
|
||||
|
||||
my %attributes;
|
||||
foreach my $attr (keys %{$$sessions{$session}}) {
|
||||
if ($attr eq 'luns') {
|
||||
if ($attr eq 'luns') {
|
||||
foreach my $lun (keys %{$$sessions{$session}->{'luns'}}) {
|
||||
$attributes{"LUN $lun"}->{'value'} =
|
||||
$attributes{"LUN $lun"}->{'value'} =
|
||||
$$sessions{$session}->{'luns'}->{$lun};
|
||||
}
|
||||
} else {
|
||||
@@ -3467,7 +3467,7 @@ sub listGroup {
|
||||
} else {
|
||||
print "\t(none)\n";
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if (defined($group)) {
|
||||
print "Group '$group' has no associated LUNs or initiators.\n";
|
||||
@@ -4679,7 +4679,7 @@ sub addTargetDynamicAttribute {
|
||||
my $rc = $SCST->addTargetDynamicAttribute($driver, $target, $attribute, $value);
|
||||
print "done.\n";
|
||||
|
||||
condExit($SCST->errorString($rc));
|
||||
condExit($SCST->errorString($rc));
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
@@ -5373,7 +5373,7 @@ sub readConfigFile {
|
||||
"I will attempt to convert it for you.\n\n";
|
||||
|
||||
return readOldConfigFile();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$line =~ s/\\(.)/\1/g;
|
||||
@@ -5423,7 +5423,7 @@ sub parseStanza {
|
||||
}
|
||||
|
||||
return \%hash;
|
||||
}
|
||||
}
|
||||
|
||||
sub parseLine {
|
||||
my $line = shift;
|
||||
@@ -5459,7 +5459,7 @@ sub readOldConfigFile {
|
||||
my $last_section;
|
||||
my $arg;
|
||||
my $last_arg;
|
||||
my %empty;
|
||||
my %empty;
|
||||
|
||||
my $io = new IO::File $CONFIGFILE, O_RDONLY;
|
||||
|
||||
@@ -5479,7 +5479,7 @@ sub readOldConfigFile {
|
||||
$arg = 'default' if ($section eq 'OPTIONS');
|
||||
|
||||
if ($last_arg && ($last_arg ne $arg) &&
|
||||
!defined($config{$last_section}->{$last_arg})) {
|
||||
!defined($config{$last_section}->{$last_arg})) {
|
||||
$config{$last_section}->{$last_arg} = \%empty;
|
||||
}
|
||||
|
||||
@@ -5779,7 +5779,7 @@ sub configToAttr {
|
||||
}
|
||||
|
||||
return \%attributes;
|
||||
}
|
||||
}
|
||||
|
||||
sub cacheAttributes {
|
||||
my $attributes = shift;
|
||||
|
||||
@@ -54,18 +54,18 @@ Numer of read IOPS reported by fio with block size 4 KB and I/O depth 32:
|
||||
+ blockdev-perftest -f -j -d -s 30 -m 12 /dev/sdb
|
||||
blocksize W W W W(avg, W(std, W R R R R(avg, R(std, R
|
||||
(bytes) (s) (s) (s) MB/s) MB/s) (IOPS) (s) (s) (s) MB/s) MB/s) (IOPS)
|
||||
67108864 0.568 0.573 0.572 1793.371 6.800 28.021 0.373 0.372 0.372 2750.228 3.479 42.972
|
||||
33554432 0.553 0.570 0.563 1822.346 22.683 56.948 0.374 0.374 0.373 2740.415 3.460 85.638
|
||||
16777216 0.552 0.554 0.552 1852.840 3.157 115.803 0.387 0.384 0.384 2659.776 9.745 166.236
|
||||
8388608 0.525 0.526 0.525 1949.240 1.748 243.655 0.411 0.409 0.410 2497.571 4.974 312.196
|
||||
4194304 0.542 0.540 0.541 1892.795 2.857 473.199 0.433 0.437 0.428 2366.890 20.165 591.722
|
||||
2097152 0.611 0.610 0.612 1675.944 2.240 837.972 0.517 0.512 0.511 1994.857 10.167 997.429
|
||||
1048576 0.678 0.691 0.684 1496.437 11.609 1496.437 0.588 0.597 0.586 1734.727 13.989 1734.727
|
||||
524288 0.946 0.941 0.947 1083.989 3.017 2167.977 0.808 0.784 0.788 1290.981 16.943 2581.961
|
||||
262144 1.102 1.167 1.152 898.524 22.201 3594.096 0.968 0.964 0.970 1058.587 2.732 4234.349
|
||||
131072 1.289 1.239 1.249 813.581 13.820 6508.648 1.076 1.074 1.071 953.745 1.826 7629.957
|
||||
65536 1.599 1.604 1.608 638.540 1.466 10216.641 1.389 1.396 1.405 733.190 3.436 11731.045
|
||||
32768 2.300 2.319 2.309 443.423 1.490 14189.537 1.976 2.004 1.967 516.595 4.088 16531.055
|
||||
16384 3.780 3.777 3.788 270.780 0.332 17329.951 3.210 3.086 3.050 328.854 7.147 21046.655
|
||||
8192 6.800 6.406 6.560 155.512 3.804 19905.533 5.409 5.250 5.272 192.865 2.533 24686.738
|
||||
4096 12.368 12.240 11.924 84.111 1.298 21532.302 9.561 9.847 9.559 106.072 1.472 27154.518
|
||||
67108864 0.568 0.573 0.572 1793.371 6.800 28.021 0.373 0.372 0.372 2750.228 3.479 42.972
|
||||
33554432 0.553 0.570 0.563 1822.346 22.683 56.948 0.374 0.374 0.373 2740.415 3.460 85.638
|
||||
16777216 0.552 0.554 0.552 1852.840 3.157 115.803 0.387 0.384 0.384 2659.776 9.745 166.236
|
||||
8388608 0.525 0.526 0.525 1949.240 1.748 243.655 0.411 0.409 0.410 2497.571 4.974 312.196
|
||||
4194304 0.542 0.540 0.541 1892.795 2.857 473.199 0.433 0.437 0.428 2366.890 20.165 591.722
|
||||
2097152 0.611 0.610 0.612 1675.944 2.240 837.972 0.517 0.512 0.511 1994.857 10.167 997.429
|
||||
1048576 0.678 0.691 0.684 1496.437 11.609 1496.437 0.588 0.597 0.586 1734.727 13.989 1734.727
|
||||
524288 0.946 0.941 0.947 1083.989 3.017 2167.977 0.808 0.784 0.788 1290.981 16.943 2581.961
|
||||
262144 1.102 1.167 1.152 898.524 22.201 3594.096 0.968 0.964 0.970 1058.587 2.732 4234.349
|
||||
131072 1.289 1.239 1.249 813.581 13.820 6508.648 1.076 1.074 1.071 953.745 1.826 7629.957
|
||||
65536 1.599 1.604 1.608 638.540 1.466 10216.641 1.389 1.396 1.405 733.190 3.436 11731.045
|
||||
32768 2.300 2.319 2.309 443.423 1.490 14189.537 1.976 2.004 1.967 516.595 4.088 16531.055
|
||||
16384 3.780 3.777 3.788 270.780 0.332 17329.951 3.210 3.086 3.050 328.854 7.147 21046.655
|
||||
8192 6.800 6.406 6.560 155.512 3.804 19905.533 5.409 5.250 5.272 192.865 2.533 24686.738
|
||||
4096 12.368 12.240 11.924 84.111 1.298 21532.302 9.561 9.847 9.559 106.072 1.472 27154.518
|
||||
|
||||
@@ -63,10 +63,10 @@ kernel-ib, kernel-ib-devel and SRP tools packages. An example:
|
||||
tar xzf OFED-1.5.1.tgz
|
||||
cd OFED-1.5.1
|
||||
cat <<EOF >ofed.conf
|
||||
libibverbs=y
|
||||
libibverbs-utils=y
|
||||
libmthca=y
|
||||
libmlx4=y
|
||||
libibverbs=y
|
||||
libibverbs-utils=y
|
||||
libmthca=y
|
||||
libmlx4=y
|
||||
libcxgb3=y
|
||||
libnes=y
|
||||
libipathverbs=y
|
||||
@@ -93,7 +93,7 @@ kernel-ib, kernel-ib-devel and SRP tools packages. An example:
|
||||
srptools=y
|
||||
perftest=y
|
||||
EOF
|
||||
./install.pl -c ofed.conf
|
||||
./install.pl -c ofed.conf
|
||||
|
||||
Now continue with the installation instructions you can find in the
|
||||
SCST-SRPT README file. The Makefile included with SCST-SRPT detects
|
||||
|
||||
@@ -61,7 +61,7 @@ Index: srpt/src/ib_srpt.c
|
||||
+ rsp->req_lim_delta = cpu_to_be32(ch->rq_size + 16);
|
||||
ch->req_lim = ch->rq_size;
|
||||
ch->req_lim_delta = 0;
|
||||
|
||||
|
||||
* Verify that a SCSI reset works properly by running the following command
|
||||
on an initiator system (note: with kernel version 2.6.37 and before the
|
||||
command below triggers a bug in the Linux SRP initiator -- see also
|
||||
|
||||
@@ -1020,7 +1020,7 @@ static int srpt_adjust_sq_wr_avail(struct srpt_rdma_ch *ch, int delta)
|
||||
/**
|
||||
* srpt_post_send - post an IB send request
|
||||
* @ch: SRPT RDMA channel.
|
||||
* @ioctx: I/O context.
|
||||
* @ioctx: I/O context.
|
||||
* @len: Length in bytes of request to send.
|
||||
*
|
||||
* Returns zero upon success and a non-zero value upon failure.
|
||||
|
||||
@@ -36,5 +36,5 @@ Summary of changes between versions 1.0.0 and 1.0.1
|
||||
SCST_USER_FLUSH_CACHE and SCST_USER_DEVICE_CAPACITY_CHANGED added
|
||||
|
||||
- Sync with vdisk handler
|
||||
|
||||
|
||||
- Added autogenerated SCSI SN
|
||||
|
||||
@@ -23,7 +23,7 @@ SHELL=/bin/bash
|
||||
SRCS_F = fileio.c common.c debug.c crc32.c
|
||||
OBJS_F = $(SRCS_F:.c=.o)
|
||||
|
||||
#SRCS_C =
|
||||
#SRCS_C =
|
||||
#OBJS_C = $(SRCS_C:.c=.o)
|
||||
|
||||
SCST_INC_DIR := $(shell if [ -e "$$PWD/../../scst" ]; \
|
||||
|
||||
@@ -37,10 +37,10 @@ fileio_tgt [OPTION] name path
|
||||
Where:
|
||||
|
||||
- OPTION - one or several not required options, see below.
|
||||
|
||||
|
||||
- name - name of the virtual device as it will be seen by SCST and used
|
||||
in the subsequent access management using the corresponding SCST interface.
|
||||
|
||||
|
||||
- path - path to the device file.
|
||||
|
||||
The following options are supported:
|
||||
|
||||
Reference in New Issue
Block a user