diff --git a/AskingQuestions b/AskingQuestions index 1d9441c45..99fedfcc3 100644 --- a/AskingQuestions +++ b/AskingQuestions @@ -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? ====================================================================== diff --git a/Makefile b/Makefile index 0652efe09..f34290161 100644 --- a/Makefile +++ b/Makefile @@ -308,7 +308,7 @@ emulex_install: emulex_uninstall: cd $(EMULEX_DIR) && $(MAKE) uninstall -emulex_clean: +emulex_clean: cd $(EMULEX_DIR) && $(MAKE) clean emulex_extraclean: @@ -323,7 +323,7 @@ lsi_install: lsi_uninstall: cd $(LSI_DIR) && $(MAKE) uninstall -lsi_clean: +lsi_clean: cd $(LSI_DIR) && $(MAKE) clean lsi_extraclean: @@ -368,7 +368,7 @@ usr_install: usr_uninstall: cd $(USR_DIR) && $(MAKE) uninstall -usr_clean: +usr_clean: cd $(USR_DIR) && $(MAKE) clean usr_extraclean: diff --git a/fcst/Makefile b/fcst/Makefile index ca25c5dd4..357a6c897 100644 --- a/fcst/Makefile +++ b/fcst/Makefile @@ -4,12 +4,12 @@ # # Copyright (C) 2006 - 2008 Jacky Feng # Copyright (C) 2011 - 2018 Bart Van Assche -# +# # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License # as published by the Free Software Foundation, version 2 # of the License. -# +# # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the @@ -20,8 +20,8 @@ # all (the default) : make all # clean : clean files # extraclean : clean + clean dependencies -# install : install -# uninstall : uninstall +# install : install +# uninstall : uninstall # # Notes : # - install and uninstall must be made as root diff --git a/iscsi-scst/AskingQuestions b/iscsi-scst/AskingQuestions index 1d9441c45..99fedfcc3 100644 --- a/iscsi-scst/AskingQuestions +++ b/iscsi-scst/AskingQuestions @@ -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? ====================================================================== diff --git a/iscsi-scst/README b/iscsi-scst/README index a8dbc6f77..37bd611dd 100644 --- a/iscsi-scst/README +++ b/iscsi-scst/README @@ -981,7 +981,7 @@ Background information about zero-copy data sending As explained above the most efficient operation of the iSCSI-SCST target driver is achieved when the following two conditions are met: * Data is sent from target to initiator in a zero-copy fashion. -* Data buffers are cached for reuse (by the so-called sgv pool). +* Data buffers are cached for reuse (by the so-called sgv pool). Unfortunately the zero-copy API in the Linux kernel (proto.sendpage() / tcp_sendpage()) does not yet support completion notifications. Hence the put_page_callback patch which adds completion notification support to @@ -999,7 +999,7 @@ Notes: pool to allocate a data buffer. * Zero-copy sending is only possible with network interface drivers that support scatter/gather and checksumming (NETIF_F_SG and NETIF_F_ALL_CSUM - respectively). + respectively). References: [1] James Bottomley, Linux Kernel Mailing List, December 2008, diff --git a/iscsi-scst/ToDo b/iscsi-scst/ToDo index 0d942d7cd..36f4eee62 100644 --- a/iscsi-scst/ToDo +++ b/iscsi-scst/ToDo @@ -7,7 +7,7 @@ same structure. This architecture decision derived from IET and makes the code a lot less readable, maintainable and effective as well as more errors prone, so it must be corrected. - + - Code beautifying, i.e. make it be written in the same nice looking style. Particularly, all functions and variables names should share the same style. diff --git a/iscsi-scst/doc/SCST_Gentoo_HOWTO.txt b/iscsi-scst/doc/SCST_Gentoo_HOWTO.txt index e79ed917b..b83c80c1b 100644 --- a/iscsi-scst/doc/SCST_Gentoo_HOWTO.txt +++ b/iscsi-scst/doc/SCST_Gentoo_HOWTO.txt @@ -36,11 +36,11 @@ a) Latest development version cd /root svn checkout svn://svn.code.sf.net/p/scst/svn/trunk scst -b) Specific branch (3.0 used in example) +b) Specific branch (3.0 used in example) cd /root svn checkout svn://svn.code.sf.net/p/scst/svn/branches/3.0.x scst - + 2. Build SCST ! Important: SCST 3.1.x and trunk: Gentoo Hardened kernels uses diff --git a/iscsi-scst/doc/iscsi-scst-howto.txt b/iscsi-scst/doc/iscsi-scst-howto.txt index 73d5fd50d..68f91b073 100644 --- a/iscsi-scst/doc/iscsi-scst-howto.txt +++ b/iscsi-scst/doc/iscsi-scst-howto.txt @@ -398,7 +398,7 @@ Device (host:ch:id:lun or name) Device handler LUN masking ----------- -SCST defines security groups. For each group, you can add LUNs. +SCST defines security groups. For each group, you can add LUNs. If you want to have all LUNs available for all targets, just add them to the "Default" group: diff --git a/iscsi-scst/doc/manpages/iscsi-scst-adm.8 b/iscsi-scst/doc/manpages/iscsi-scst-adm.8 index 39c597673..bb73242e5 100644 --- a/iscsi-scst/doc/manpages/iscsi-scst-adm.8 +++ b/iscsi-scst/doc/manpages/iscsi-scst-adm.8 @@ -137,7 +137,7 @@ iscsi-scst-adm \- iSCSI SCST Target Administration Utility. \&\fBiscsi-scst-adm \-\-op [operation] \-\-tid=[id] [\-\-sid [id]] [\-\-params [key=value,...]]\fR .SH "DESCRIPTION" .IX Header "DESCRIPTION" -iscsi-scst-adm is used to monitor and modify in real-time the iSCSI SCST Target +iscsi-scst-adm is used to monitor and modify in real-time the iSCSI SCST Target targets. .SH "USAGE" .IX Header "USAGE" diff --git a/iscsi-scst/doc/manpages/iscsi-scstd.8 b/iscsi-scst/doc/manpages/iscsi-scstd.8 index 2ddee95b6..6167a65fe 100644 --- a/iscsi-scst/doc/manpages/iscsi-scstd.8 +++ b/iscsi-scst/doc/manpages/iscsi-scstd.8 @@ -56,7 +56,7 @@ Specify running user id, default is current uid. .SH FILES .I /etc/iscsi-scstd.conf .RS -The system wide configuration file. See +The system wide configuration file. See .BR iscsi-scstd.conf (5) for further details. .RE diff --git a/iscsi-scst/doc/manpages/iscsi-scstd.conf.5 b/iscsi-scst/doc/manpages/iscsi-scstd.conf.5 index 6958b15ec..052d4c3f8 100644 --- a/iscsi-scst/doc/manpages/iscsi-scstd.conf.5 +++ b/iscsi-scst/doc/manpages/iscsi-scstd.conf.5 @@ -1,6 +1,6 @@ .\" Process this file with .\" groff -man -Tascii iscsi-scstd.conf.5 -.\" +.\" .TH "ISCSI_SCSTD.CONF" "5" "May 2007" "A. Lehmann, M. Zhang and A. Redlich" "File formats" .SH "NAME" /etc/iscsi-scstd.conf \- configuration for iSCSI SCST Target Daemon @@ -15,12 +15,12 @@ Only lines starting with `#' are ignored. Putting '#' in the middle of a line is .P The "Yes" and "No" for parameter values are case sensitive. The parameter names are case insensitive. .P -The file consists of a global part and zero or more "Target" stanzas. Everything until the first target definition belongs to the global configuration. +The file consists of a global part and zero or more "Target" stanzas. Everything until the first target definition belongs to the global configuration. Here is an example: IncomingUser joe secret -.br +.br OutgoingUser jack secret2 Target iqn.2007\-05.com.example:storage.disk2.sys1.xyz @@ -46,11 +46,11 @@ Target iqn.2007\-05.com.example:storage.disk2.sys1.xyz Stanzas start with the word "Target" and the target name. This name must be a globally unique name, as defined by the iSCSI standard : the "iSCSI Qualified Name". The daemon brings the targets up in the order listed. .SH "GLOBAL OPTIONS" Global Options are case sensitive. -.TP +.TP .B [IncomingUser ] -The +The .I -and +and .I used during discovery sessions to authenticate iSCSI initiators. Several of those can be specified for discovery. If no .B IncomingUser @@ -60,13 +60,13 @@ HINT: RFC 3720 requires .I to be 12 characters long. This is enforced e.g. by MS Initiator. .RE -.TP +.TP .B [OutgoingUser ] -The +The .I -and +and .I -used during discovery sessions to authenticate the target to initiators. Only one outgoing +used during discovery sessions to authenticate the target to initiators. Only one outgoing .I / combination may be specified. .RS @@ -74,16 +74,16 @@ HINT: RFC 3720 requires .I to be 12 characters long. This is enforced e.g. by MS Initiator. .RE -.TP +.TP .B Target iqn..[:] A target definition and the target name. The targets name (the .B iSCSI Qualified Name ) must be a globally unique name (as defined by the iSCSI standard) and has to start with .I iqn -followed by a single dot. The EUI\-64 form is not supported. +followed by a single dot. The EUI\-64 form is not supported. .I is the date (year and month) at which the domain is valid. This has to be followed by a single dot and the reversed domain name. -The optional +The optional .I \- which is freely selectable \- has to be separated by a single colon. For further details please check the iSCSI spec. @@ -92,7 +92,7 @@ Here is an example: Target iqn.2007\-05.com.example.host:storage.disk2.sys1.xyz .SH "TARGET OPTIONS" Target options are also case sensitive. -.TP +.TP .B [IncomingUser ] The .I @@ -102,55 +102,55 @@ used to authenticate the iSCSI initiators to this target. It may be different fr .B IncomingUser Option, connections are allowed without authentication. A .I -has to be provided, if there is a +has to be provided, if there is a .I given. Specifying several different .B IncomingUser accounts is supported. -.TP +.TP .B [OutgoingUser ] The .I and .I used to authenticate this iSCSI target to initiators. Only one -.B +.B OutgoingUser per target is supported. It may be different from the username and password in section GLOBAL OPTIONS, which is used for discovery. A .I -has to be provided, if there is a +has to be provided, if there is a .I given. -.TP +.TP .B [Alias ] -This assigns an optional +This assigns an optional .I to the target. -.TP +.TP .B [HeaderDigest ] Optional. If set to "CRC32C" and the initiator is configured accordingly, the integrity of an iSCSI PDU's header segments will be protected by a CRC32C checksum. The default is "None". Note that header digests are not supported during discovery sessions. -.TP +.TP .B [DataDigest ] Optional. If set to "CRC32C" and the initiator is configured accordingly, the integrity of an iSCSI PDU's data segment will be protected by a CRC32C checksum. The default is "None". Note that data digests are not supported during discovery sessions. -.TP +.TP .B [MaxConnections ] Optional. The number of connections within a session. Has to be set to "1" (in words: one), which is also the default since MC/S is not supported. -.TP +.TP .B [InitialR2T ] Optional. If set to "Yes", the initiator has to wait for the target to solicit SCSI data before sending it. Setting it to "No" (default) allows the initiator to send a burst of .B FirstBurstLength bytes unsolicited right after and/or (depending on the setting of .B ImmediateData ) together with the command. Thus setting it to "No" may improve performance. -.TP +.TP .B [ImmediateData ] Optional. This allows the initiator to append unsolicited data to a command. To achieve better performance, this should be set to "Yes". Which is the default. -.TP +.TP .B [MaxRecvDataSegmentLength ] -Optional. Sets the maximum data segment length that can be received. The +Optional. Sets the maximum data segment length that can be received. The .I should be set to multiples of PAGE_SIZE. Configuring too large values may lead to problems allocating sufficient memory, which in turn may lead to SCSI commands timing out at the initiator host. The default value is the highes possible for current platform (1 or 2 MB). -.TP +.TP .B [MaxXmitDataSegmentLength ] Optional. Sets the maximum data segment length that can be sent. The .I @@ -158,15 +158,15 @@ actually used is the minimum of .B MaxXmitDataSegmentLength and the .B MaxRecvDataSegmentLength -announced by the initiator. The +announced by the initiator. The .I should be set to multiples of PAGE_SIZE. Configuring too large values may lead to problems allocating sufficient memory, which in turn may lead to SCSI commands timing out at the initiator host. The default value is the highes possible for current platform (1 or 2 MB). -.TP +.TP .B [MaxBurstLength ] -Optional. Sets the maximum amount of either unsolicited or solicited data the initiator may send in a single burst. Any amount of data exceeding this value must be explicitly solicited by the target. The +Optional. Sets the maximum amount of either unsolicited or solicited data the initiator may send in a single burst. Any amount of data exceeding this value must be explicitly solicited by the target. The .I should be set to multiples of PAGE_SIZE. Configuring too large values may lead to problems allocating sufficient memory, which in turn may lead to SCSI commands timing out at the initiator host. The default value is the highes possible for current platform (1 or 2 MB). -.TP +.TP .B [FirstBurstLength ] Optional. Sets the amount of unsolicited data the initiator may transmit in the first burst of a transfer either with and/or right after the command, depending on the settings of .B InitialR2T @@ -175,27 +175,27 @@ and . .I should be set to multiples of PAGE_SIZE. Configuring too large values may lead to problems allocating sufficient memory, which in turn may lead to SCSI commands timing out at the initiator host. The default value is the highes possible for current platform (1 or 2 MB). -.TP +.TP .B [DefaultTime2Wait ] Currently not supported. -.TP +.TP .B [DefaultTime2Retain ] Currently not supported. -.TP +.TP .B [MaxOutstandingR2T ] Optional. Controls the maximum number of data transfers the target may request at once, each of up to .B MaxBurstLength bytes. The default is 20. -.TP +.TP .B [DataPDUInOrder ] Optional. Has to be set to "Yes" \- which is also the default. -.TP +.TP .B [DataSequenceInOrder ] Optional. Has to be set to "Yes" \- which is also the default. -.TP +.TP .B [ErrorRecoveryLevel ] Optional. Has to be set to "0" (in words: zero), which is also the default. -.TP +.TP .B [QueuedCommands ] Optional. This parameter defines a window of commands an initiator may send and that will be buffered by the target. Depending on your hardware and your (expected) workload, the .I value @@ -204,7 +204,7 @@ may be carefully adjusted. The default value of 32 should be sufficient for most Currently (as of 0.4.11) not all iSCSI target parameters are used. Header and data digests are not supported during discovery sessions. .SH "SEE ALSO" .B iscsi-scstd (8) -.TP +.TP You should have a look at .B RFC 3720 for all the glory details. diff --git a/iscsi-scst/etc/obsolete/initiators.deny b/iscsi-scst/etc/obsolete/initiators.deny index 72fdf0bf3..5e0d1113c 100644 --- a/iscsi-scst/etc/obsolete/initiators.deny +++ b/iscsi-scst/etc/obsolete/initiators.deny @@ -1,9 +1,9 @@ # The semantics are: # * By default, every initiator can see and connect to all targets. -# +# # * Deny for some or every initiator access to one or all targets, # by adding a line to this file. -# +# # * Then allow some named initiators access to selected targets, # by adding lines to initiators.allow #