Commit Graph

81 Commits

Author SHA1 Message Date
Vladislav Bolkhovitin
0007914f1d Make RX data digest failures handling more smart
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@1731 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2010-06-01 11:35:27 +00:00
Vladislav Bolkhovitin
b53e4cb4c1 Merge of the pr branch with additional fixes for problems found during extra testing
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@1714 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2010-05-26 17:46:46 +00:00
Vladislav Bolkhovitin
bc1cda46df Sparse cleanups
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@1713 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2010-05-24 12:32:45 +00:00
Vladislav Bolkhovitin
4d5aaf047b Copyrights updated
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@1585 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2010-04-06 08:57:48 +00:00
Vladislav Bolkhovitin
1f216064f3 Uniform max queue depth handling in iSCSI
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@1556 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2010-03-18 11:44:39 +00:00
Vladislav Bolkhovitin
88e5601df0 Deeply reworked patch from Alexey Obitotskiy <alexeyo1@open-e.com> implementing support for sending NOP-In requests
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@1533 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2010-03-05 12:56:20 +00:00
Vladislav Bolkhovitin
713410951b Minor fixes and cleanups
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@1520 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2010-02-25 13:37:56 +00:00
Vladislav Bolkhovitin
4d96089e50 Sysfs interface for targets made uniform. ISCSI-SCST made confirming the uniformity requirements. See README for details.
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@1511 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2010-02-17 19:07:54 +00:00
Vladislav Bolkhovitin
4a2fcb870b - Logging cleanups. Particularly, TRACE_MGMT_MINOR level was removed
- Docs updates
 - Other minor fixes and cleanups



git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@1452 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2010-01-12 13:29:01 +00:00
Vladislav Bolkhovitin
05d1bbfedc A huge chunk of related to each other changes, which had to be tested together.
iSCSI-SCST: A huge improvements in errors recovery and iSCSI RFC complaince as well as performance. Also:

 - Fixes and improvements for MaxOutstandingR2T>1

 - Flow control tracing added.

 - Cleanups

SCST core:

 - Now for scst_cmd_init_stage1_done() commands preprocessing_done() is always called before xmit_response(), even in case of abort or error.

 - Fixed recently introduced bug, which can lead to sending responses for aborted commands after reply on the corresponding TM command already sent.

 - Flow control tracing added.

 - Now it is possible to call functions setting commands execution status (e.g., scst_set_cmd_error_status()) several times for the same command. Only the first call will be completed, other calls - ignored.

 - All commands are counted and shown in proc/sysfs now. Before only active, i.e. not yet executed commands, were counted and shown there.



git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@1431 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2010-01-06 13:02:22 +00:00
Vladislav Bolkhovitin
f519e2c265 Fix spelling typos.
Signed-off-by: Dotan Barak <dotanba@gmail.com>

with additional spelling fixes noticed by frank zago <fzago@systemfabricworks.com>



git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@1396 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2009-12-16 11:35:12 +00:00
Vladislav Bolkhovitin
a4f3af18bb Improve fairness between connections.
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@1360 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2009-11-24 19:50:11 +00:00
Vladislav Bolkhovitin
78ec60df89 Fix for warning: 'res' may be used uninitialized in this function
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@1358 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2009-11-23 18:43:03 +00:00
Vladislav Bolkhovitin
c3ad1a5075 Minor compiler and checkpatch fixes
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@1341 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2009-11-17 12:59:49 +00:00
Bart Van Assche
0a657760e0 Fixed a (false positive) compiler warning.
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@1334 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2009-11-14 19:30:27 +00:00
Vladislav Bolkhovitin
6153a079a3 iSCSI target sysfs "enabled" attribute implemented
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@1324 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2009-11-06 18:41:37 +00:00
Vladislav Bolkhovitin
3af8bc9a4c Various sysfs related fixes
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@1309 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2009-11-02 18:07:54 +00:00
Vladislav Bolkhovitin
977a20ccba ISCSI target sysfs implementation, except "enabled" attribute.
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@1305 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2009-10-30 20:15:38 +00:00
Bart Van Assche
0af5e1b9e3 Fixed whitespace-related checkpatch errors. Verified that the output of
svn diff -x -w is empty for this changeset.


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@1253 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2009-10-23 06:59:33 +00:00
Vladislav Bolkhovitin
9c10f10b00 Experimental optimization. Suppose that if sock_recvmsg() returned less data than requested, then next time it will return -EAGAIN, so there's no point to call it again.
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@1236 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2009-10-22 12:06:07 +00:00
Vladislav Bolkhovitin
cc83f517ea - Fix for a possible DoS, when misbehavine scst_user's handler hangs several memory allocations (= count of iSCSI read threads) and by so prevents other sessions from being served correctly. Spotted by Erez Zilber <erezzi.list@gmail.com>
- iSCSI read state machine cleanups

 - Fix a race when just freed iSCSI session accessed, because the corresponding SCST session is still being unregistered.



git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@1224 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2009-10-15 15:56:57 +00:00
Vladislav Bolkhovitin
7bdc38faf2 The most recent version of the sparse static source code checking tool does
now report functions that are called with a lock held but that are missing
__acquires() and __releases() annotations. The patch below adds such
annotations and makes the following sparse warnings disappear:

drivers/scst/iscsi-scst/iscsi.c:2861:9: warning: context imbalance in 'iscsi_check_send_delayed_tm_resp' - unexpected unlock
drivers/scst/iscsi-scst/nthread.c:1614:17: warning: context imbalance in 'scst_do_job_wr' - unexpected unlock
drivers/scst/iscsi-scst/iscsi.c:2861:9: warning: context imbalance in 'iscsi_check_send_delayed_tm_resp' - unexpected unlock
drivers/scst/iscsi-scst/nthread.c:1614:17: warning: context imbalance in 'scst_do_job_wr' - unexpected unlock
drivers/scst/scst_local/scst_local.c:554:30: warning: context imbalance in 'scst_local_queuecommand' - unexpected unlock

The patch below has been tested by comparing the output of
"scripts/run-regression-tests 2.6.30.3" before and after the patch was applied.

Signed-off-by: Bart Van Assche <bart.vanassche@gmail.com>



git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@982 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2009-07-27 17:52:19 +00:00
Bart Van Assche
e564749845 Removed trailing whitespace.
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@947 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2009-07-10 12:10:41 +00:00
Vladislav Bolkhovitin
63b86adb27 Fixes wrong usage of parent request's fields in the response.
Reported by Erez Zilber <erezzi.list@gmail.com>



git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@945 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2009-07-09 18:38:54 +00:00
Vladislav Bolkhovitin
fb0256ba8a Small performance optimization: wake up IO/processing threads in LIFO order.
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@928 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2009-06-30 16:13:48 +00:00
Vladislav Bolkhovitin
1c304091f4 - Data digest SMP scalability imcreased
- Iscsi_dump_char() made thread safe



git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@841 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2009-05-11 17:24:51 +00:00
Vladislav Bolkhovitin
f572d4ff79 - Copyrights updated.
- Other minor updates



git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@803 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2009-04-27 19:01:28 +00:00
Vladislav Bolkhovitin
102603f46d We can't mark sess as shutting down in close_conn(), because at that time it might have pending commands. Otherwise, in case of reinstatement it might lead to data corruption, because commands in being reinstated session can be executed after commands in the new session.
Found out by Hari Subramanian <hari@vmware.com>



git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@792 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2009-04-21 18:25:46 +00:00
Vladislav Bolkhovitin
7b30ca41cb - Now during connection and session reinstatements only SCSI commands are delayed until the corresponding reinstatement finished.
- TEST UNIT READY made HEAD OF QUEUE to let target don't look dead under high load
 - Docs updated



git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@774 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2009-04-14 17:29:23 +00:00
Vladislav Bolkhovitin
bf4556ec1c A bunch of minor fixes and important cleanups. Particularly:
- More fixes on circular dependency between target_mutex and scst_mutex
 - Docs updated
 - Sense handling cleanups



git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@764 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2009-04-09 10:07:31 +00:00
Vladislav Bolkhovitin
8ff3e56ef6 Fixes deadlock on iSCSI session freeing. Reported by andy yan <andyysj@gmail.com>
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@718 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2009-03-25 13:03:29 +00:00
Vladislav Bolkhovitin
94ae1d6db9 Fixes possible oopses on scst_cmd dereference.
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@708 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2009-03-20 18:40:55 +00:00
Vladislav Bolkhovitin
341f592a4a Support for variable lenght CDB added
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@702 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2009-03-18 19:36:01 +00:00
Vladislav Bolkhovitin
159ef466dc - Support for SCSI AENs added
- Now sense data are sent without additional memory allocation and copy

 - Sending and receiving padding bytes reimplemented

 - Cleanups



git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@699 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2009-03-17 18:05:19 +00:00
Vladislav Bolkhovitin
f9b9d824c6 Session and connection reinstation fixes for cases when they are shutting down and request for reinstation comes.
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@692 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2009-03-06 19:04:48 +00:00
Vladislav Bolkhovitin
bda620b65a - Connection reinstatement fixes
- Minor cleanups



git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@687 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2009-03-04 18:31:35 +00:00
Vladislav Bolkhovitin
bc7c69bfc4 - Fixed a major IET-derived iSCSI RFC violation: sessions and connections were not working
- A lot of cleanups and minor fixes, mostly IET-derived



git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@685 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2009-03-03 18:13:23 +00:00
Vladislav Bolkhovitin
b240091109 Final merge with IET (r201-204):
- 2.6.25 introduced netlink_socket_release(), to be used to clean up netlink sockets correctly (taking care of namespaces).

 - New more scalable proc seq_file implementation

+ minor signess cleanups

+ version updated



git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@654 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2009-01-30 17:47:31 +00:00
Vladislav Bolkhovitin
ba698dbdd5 - Fix for iSCSI RFC violation: TARGET COLD RESET must close all connections/sessions, not only the current one
- Cleanups



git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@648 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2009-01-29 18:25:45 +00:00
Vladislav Bolkhovitin
2482d19490 The patch below fixes most checkpatch and sparse issues that are reported by
the most recent versions (checkpatch 2.6.28 / latest sparse git version) and
that were not reported by previous versions (checkpatch 2.6.27 / sparse 0.4.1).
The patch below fixes the following issues:
* Removed trailing space in iscsi-scst/README_in-tree.
* Fixed sparse complaints about functions that were not declared static.
* Fixed sparse complaints about casts between address spaces: such casts are
   now either fixed or explicit (via the __force keyword).

The patch below has been verified by checking the output produced by:
scripts/run-regression-tests -k 2.6.28.1

Signed-off-by: Bart Van Assche <bart.vanassche@gmail.com>



git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@641 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2009-01-26 17:32:50 +00:00
Vladislav Bolkhovitin
cba6490e82 Until now I had been using the latest git version of sparse (August 26, 2008).
Apparently not all messages reported by this version are correct. So I switched
back to the last released sparse version (0.4.1). The patch below fixes all
errors and warnings reported by sparse 0.4.1 on the SCST source code.

Signed-off-by: Bart Van Assche <bart.vanassche@gmail.com>



git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@596 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2008-12-04 18:00:51 +00:00
Vladislav Bolkhovitin
9013ab1315 Signed/unsigned cleanups
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@586 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2008-11-28 16:11:51 +00:00
Vladislav Bolkhovitin
ea7e57886e The patch below fixes the sparse warnings on passing a __user pointer where a
kernel pointer is expected and vice versa. Additionally, there are a few fixes
for checkpatch warnings on trailing whitespace and lines that were over 80
columns.

This patch has been verified by reviewing it carefully and by verifying the
output files of the command scripts/run-regression-tests -k 2.6.27.6.

Signed-off-by: Bart Van Assche <bart.vanassche@gmail.com>



git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@579 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2008-11-21 10:15:03 +00:00
Vladislav Bolkhovitin
e882fcec37 The patch below fixes sparse warnings about int / unsigned int mismatches in
the iscsi-scst source code.

This patch has been verified by reviewing it carefully and by verifying the
output files of the command scripts/run-regression-tests -k 2.6.27.6.

Signed-off-by: Bart Van Assche <bart.vanassche@gmail.com>



git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@571 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2008-11-18 18:23:08 +00:00
Vladislav Bolkhovitin
b0c6d9a561 The patch below fixes many checkpatch warnings triggered by the iSCSI kernel
code, mainly about lines that exceeded 80 columns. As you can see in the patch
below most lines that were too long have been split, but some code has also
been moved into helper functions in order to keep the code readable. No
functionality has been changed.

This patch has been verified as follows:
- Reread the patch carefully.
- Verified that the iSCSI target kernel module still loads.
- Verified the output generated by scripts/run-regression-tests -k 2.6.27.5.

Signed-off-by: Bart Van Assche <bart.vanassche@gmail.com>

with some modifications



git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@569 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2008-11-12 18:49:18 +00:00
Vladislav Bolkhovitin
47422bf856 Added possibility to coexist if both target driver and dev handler need custom memory allocation. Direct consequences:
1. scst_local can work with scst_user's devices

2. scst_user now compatible with iscsi-scst if put_page_callback not applied

+ some cosmetics



git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@567 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2008-11-11 11:56:18 +00:00
Vladislav Bolkhovitin
775ddf6f18 The patch below implements the following changes, because an
upcoming checkpatch version will complain about these:
* Make sure that a single tab is used for indenting instead of four spaces.
* Removed spaces from around the colon used for specifying field widths.
* Remove trailing whitespace in .txt files.

This patch has been tested by verifying that:
- the output of svn diff -x -w is empty, i.e. that the patch only affects
  whitespace.
- the SCST out-of-tree source code still compiles fine against the 2.6.25 kernel
  (make -s clean && make -C srpt -s clean && make -s scst iscsi-scst && make -C srpt -s).

Signed-off-by: Bart Van Assche <bart.vanassche@gmail.com>



git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@525 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2008-10-16 17:46:37 +00:00
Vladislav Bolkhovitin
73e27412fb - Update for 2.6.26
- Zero-copy feature, introduced by put_page_callback patch, made kernel compile time configurable via CONFIG_TCP_ZERO_COPY_TRANSFER_COMPLETION_NOTIFICATION option. If you upgrade from earlier versions, see the corresponding "[CAUTION]" e-mail in scst-devel mailing list about possible compatibility problems.
 - SRP target temporary removed from "all" and "install" the main Makefile targets, since it isn't compiled on 2.6.26
 - Minor fixes and cleanups



git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@475 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2008-07-24 09:22:55 +00:00
Vladislav Bolkhovitin
cc28ddcdf2 Apparently the SCST code with debugging and/or tracing enabled compiles fine as
an external module. When applying the SCST kernel patch to the mainstream 
kernel tree with debugging and/or tracing enabled however, the resulting code
triggers a compiler error. This is because the symbols DEBUG and TRACING
conflict with symbols with the same named defined in unrelated kernel headers.
The patch below resolves these conflicts by renaming the following preprocessor 
symbols:
- DEBUG into CONFIG_SCST_DEBUG.
- DEBUG_DIGEST_FAILURES into CONFIG_SCST_ISCSI_DEBUG_DIGEST_FAILURES.
- DEBUG_OOM into CONFIG_SCST_DEBUG_OOM.
- DEBUG_RETRY into CONFIG_SCST_DEBUG_RETRY.
- DEBUG_SN into CONFIG_SCST_DEBUG_SN.
- DEBUG_TM into CONFIG_SCST_DEBUG_TM.
- EXTRACHECKS into CONFIG_SCST_EXTRACHECKS.
- SCST_HIGHMEM into CONFIG_SCST_HIGHMEM.
- STRICT_SERIALIZING into CONFIG_SCST_STRICT_SERIALIZING.
- TM_DBG_GO_OFFLINE into CONFIG_SCST_TM_DBG_GO_OFFLINE. Mapped 0/1 values
  into macro undefined / macro defined.
- TRACING into CONFIG_SCST_TRACING.
- USE_EXPECTED_VALUES into CONFIG_SCST_USE_EXPECTED_VALUES.
- In qla_isp/linux/isp_scst.c, renamed DEBUG into DEBUG_ISP_SCST.
- In qla_isp/..., renamed SCSI_TARGET in SCST_SCSI_TARGET.
- In qla_isp/..., renamed SCSI_TARGET_DEV in SCST_SCSI_TARGET_DEV.
Additionally, all CONFIG_SCSI_TARGET* macro's are renamed into CONFIG_SCST* in
order to avoid confusion between the STGT CONFIG-symbols and the SCST CONFIG-
symbols.

The following additional options are now configurable through Kconfig:
- CONFIG_SCST_ISCSI_DEBUG_DIGEST_FAILURES
- CONFIG_SCST_STRICT_SERIALIZING
- CONFIG_SCST_STRICT_SECURITY
- CONFIG_SCST_ALLOW_PASSTHROUGH_IO_SUBMIT_IN_SIRQ
- CONFIG_SCST_ABORT_CONSIDER_FINISHED_TASKS_AS_NOT_EXISTING
- CONFIG_SCST_USE_EXPECTED_VALUES
- CONFIG_SCST_DEBUG_OOM
- CONFIG_SCST_DEBUG_RETRY
- CONFIG_SCST_DEBUG_SN
- CONFIG_SCST_DEBUG_TM
- CONFIG_SCST_TM_DBG_GO_OFFLINE

The patch below has been verified as follows:
- Verified that the following command does not print any new warning messages:
  make -s clean && make -C srpt -s clean && make -s scst iscsi-scst && make -C srpt -s
- Verified as follows that the internal SCST patches still apply cleanly:
  for p in *patch; do patch -p0 --dry-run -f -s <$p; done
- Checked that the patch generated by generate-kernel-patch still applies
  cleanly to the 2.6.25.7 kernel, and that the patched kernel tree still
  compiles, installs and boots fine, that the iscsi-scst, ib_srpt,
  scst_disk and scst_vdisk modules still load, and that iSCSI communication
  still works fine. All SCST kernel configuration options that could be
  enabled have been enabled during this test.

Signed-off-by: Bart Van Assche <bart.vanassche@gmail.com>



git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@453 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2008-07-10 10:49:06 +00:00
Vladislav Bolkhovitin
20a2e4ae8d Copyrights updated
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@408 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2008-06-12 11:39:28 +00:00