Commit Graph
64 Commits
Author SHA1 Message Date
Vladislav Bolkhovitin 2cadcc2c64 Cache alignment review
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@4809 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2013-03-23 01:38:31 +00:00
Vladislav Bolkhovitin b9c0b9d92d Another micro-optimization: cache align all fast path structures
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@4785 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2013-03-04 23:51:16 +00:00
Vladislav Bolkhovitin 10ca1d2f20 Copyrights updated
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@4767 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2013-02-20 02:05:29 +00:00
Vladislav Bolkhovitin ddae1f7a63 Fix incorrect duplicate connection sysfs entry detection
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@4680 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2013-01-04 03:08:29 +00:00
Vladislav Bolkhovitin a698883844 Switch to the new and preferred approach for printing kernel messages
From: Bart Van Assche <bvanassche@acm.org>



git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@4558 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2012-10-10 03:01:34 +00:00
Vladislav Bolkhovitin eb95049061 Copyrights updated + cleanups
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@4216 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2012-04-18 02:26:39 +00:00
Vladislav Bolkhovitin 7872837b6b Replace list_entry((a)->next, b, c) by list_first_entry(a, b, c).
BSD-signed-off-by: Bart Van Assche <bvanassche@acm.org>



git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@3965 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2011-12-10 03:50:24 +00:00
Vladislav Bolkhovitin c54ebba11a Some more TM cleanups/improvements
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@3460 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2011-05-18 21:45:09 +00:00
Vladislav Bolkhovitin 5e7544e5a4 TM handling fixes, part2, hopefully, final.
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@3450 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2011-05-12 01:31:01 +00:00
Vladislav Bolkhovitin 70eb596f60 Rework iSCSI aborts to make them more correct and remove recent workarounds (one more post-IET cleanup)
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@3444 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2011-05-09 23:07:23 +00:00
Vladislav Bolkhovitin 8443ae6bc7 Don't abort not yet received commands
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@3425 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2011-04-29 19:54:13 +00:00
Vladislav Bolkhovitin 3c59daab2a Correctly process being read cmd during abort
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@3413 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2011-04-26 00:04:01 +00:00
Vladislav Bolkhovitin 64065a21e9 NOP-In/response timeouts improvements
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@3411 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2011-04-25 23:50:49 +00:00
Vladislav Bolkhovitin f3238333dd Copyrights updated
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@3200 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2011-01-06 20:02:04 +00:00
Vladislav Bolkhovitin 52820b5d57 Cleanup
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@2720 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2010-11-17 11:40:08 +00:00
Vladislav Bolkhovitin 12f4f75a81 Update for 2.6.36 based on patch from Bart Van Assche <bvanassche@acm.org>
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@2470 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2010-10-26 12:30:40 +00:00
Vladislav Bolkhovitin ff2c24c1c3 Assigning CPU affinity to threads and connections
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@2317 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2010-09-30 18:07:27 +00:00
Vladislav Bolkhovitin 3c902f9a48 Fixes race between cancel_delayed_work_sync() and conn_nop_in_delayed_work_fn() restarting the work despite of the cancel. Reported by Phil White <phil@philwhite.org>
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@2054 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2010-09-04 17:35:45 +00:00
Vladislav Bolkhovitin 1607d12c9c Sysfs cleanups and fixes, part 1
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@1962 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2010-08-20 15:38:21 +00:00
Vladislav Bolkhovitin 7eddeb82ab - Some iSCSI performance fixes
- __attribute__((aligned(sizeof(long))) added to all field with different protection than the previous field to make sure they don't share the same bus line. Just in case, actually, compiler should do the alignment by default.

 - Small docs updates.



git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@1948 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2010-08-13 18:12:45 +00:00
Vladislav Bolkhovitin 459f589b34 - Delivery error response (instead of dropping connection) fixed
- Race when target deleted before the session(s) removal event(s) processed fixed
 - Docs updated



git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@1733 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2010-06-01 18:28:41 +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 f025190b53 - Loosly merge of IET r271: fix connection and session leak on connection preparation stages
- Cleanups



git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@1645 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2010-04-21 22:17:43 +00:00
Vladislav Bolkhovitin 23ab28dcc7 Fix preliminary completion of reinstatement pending commands.
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@1624 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2010-04-15 19:51:31 +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 9c02ed26c7 Update for 2.6.33
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@1524 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2010-03-01 15:56:31 +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 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 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
Vladislav Bolkhovitin ac29495cee Minor output buffer size related fixes
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@1257 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2009-10-23 11:52:32 +00:00
Vladislav Bolkhovitin 82b04b2a00 Merge of the sysfs branch. To enable the sysfs interface you should run "make disable_proc". To switch back on the procfs interface you should run "make disable_proc".
The sysfs intarface is mostly finished. Only initiators-oriented access control not implemented and not all target drivers are updated. Only qla2x00t has been fully updated.



git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@1229 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2009-10-21 16:49:52 +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 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 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 bc96b052d5 The patch below adds support for the 2.6.29 kernel and also fixes the
checkpatch issues reported by the checkpatch script included with the 2.6.29
kernel and that were not yet reported by the 2.6.28 checkpatch script
(trailing statements should be on the next line / struct should normally be
const).
The patch below has been tested as follows:
- Reran scripts/run-regression-tests -k 2.6.24.7 -k 2.6.25.20 -k 2.6.26.8 -k 2.6.27.21 -k 2.6.28.9 -k 2.6.29 and verified the output.
- Rebuilt, installed and loaded scst, iscsi-scst and srpt as follows:
make -s clean && make -s -C scst install && make -s -C iscsi-scst install && make -s -C srpt install && cd scstadmin && make -s && make -s install && modprobe scst_vdisk && modprobe iscsi-scst && dmesg

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

with minor cleanups and corrections in put_page_callback-2.6.29.patch



git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@717 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2009-03-25 12:55:27 +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 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 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 01f7f50dc4 The patch below fixes the following class of checkpatch warnings:
WARNING: %Ld/%Lu are not-standard C, use %lld/%llu

This patch has been tested by verifying that the SCST sources still compile
fine (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@514 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2008-10-06 17:22:17 +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
Vladislav Bolkhovitin dc7820544d Patch from Bart Van Assche <bart.vanassche@gmail.com>:
While all warnings on mismatches between printf-style format strings and
argument lists were fixed on i386 and x86_64, gcc prints a large number of
warnings about mismatches when compiling SCST on ppc64. The patch below
fixes these by casting integer arguments to the type (long long unsigned int)
where appropriate.

This patch has been tested as follows:
- Verified the patch by reading it.
- Checked that make -s clean && make -s iscsi scst && make -s -C srpt did not
  trigger any compiler warnings about format strings on i386, x86_64 and ppc.
- Checked that no previously fixed checkpatch warnings were reintroduced in
  the patch generated by generate-kernel-patch.
- Checked that the patch generated by generate-kernel-patch still applies
  cleanly to the 2.6.25.4 kernel, and that the patched kernel tree still
  compiles, installs and boots fine.

Additionally, this patch splits a kernel version preprocessor test from one into two lines, such that
the generate-kernel-patch script can process the version check properly.

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



git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@397 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2008-05-26 11:13:04 +00:00