Commit Graph

242 Commits

Author SHA1 Message Date
Bart Van Assche
402306e3e0 Relaxed send-queue-full error handling.
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@1826 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2010-07-14 18:37:42 +00:00
Bart Van Assche
7a0a6fb86e Made srpt_srq_size configurable as a kernel module parameter.
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@1825 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2010-07-14 18:28:09 +00:00
Bart Van Assche
fe81f9766c Changed two PRINT_INFO() messages that reported that the send queue was full into PRINT_ERROR() messages, and renamed a few variables.
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@1824 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2010-07-14 17:22:52 +00:00
Bart Van Assche
e7c082ac23 Implemented several source code refinements that do not affect functionality.
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@1819 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2010-07-13 18:36:08 +00:00
Bart Van Assche
47a5c6072c Fixed a bug in the command abortion code. E.g. the following kernel message could be generated when unloading ib_srpt while I/O was ongoing:
------------[ cut here ]------------
WARNING: at /home/bart/software/scst/srpt/src/ib_srpt.c:1063 srpt_reset_ioctx+0x15b/0x170 [ib_srpt]()
Hardware name: P5Q DELUXE
Modules linked in: [ ... ]
Pid: 20709, comm: disk011_4 Tainted: G        W  2.6.34-scst #1
Call Trace:
 [<ffffffff81048dbb>] warn_slowpath_common+0x7b/0xc0
 [<ffffffff81048e14>] warn_slowpath_null+0x14/0x20
 [<ffffffffa050772b>] srpt_reset_ioctx+0x15b/0x170 [ib_srpt]
 [<ffffffff81048dcf>] ? warn_slowpath_common+0x8f/0xc0
 [<ffffffffa0507773>] srpt_on_free_cmd+0x33/0x60 [ib_srpt]
 [<ffffffffa0480a0b>] scst_free_cmd+0xab/0x460 [scst]
 [<ffffffffa046dd38>] scst_finish_cmd+0x178/0x300 [scst]
 [<ffffffffa0470ed4>] scst_process_active_cmd+0x134/0x640 [scst]
 [<ffffffffa0471dac>] scst_process_redirect_cmd+0x2bc/0x3f0 [scst]
 [<ffffffffa047247a>] scst_tgt_cmd_done+0x6a/0x100 [scst]
 [<ffffffffa0508dec>] srpt_xmit_response+0x11c/0x210 [ib_srpt]
 [<ffffffffa046b53c>] scst_xmit_response+0x13c/0x560 [scst]
 [<ffffffffa0470efb>] scst_process_active_cmd+0x15b/0x640 [scst]
 [<ffffffffa047149d>] scst_do_job_active+0xbd/0x180 [scst]
 [<ffffffffa0471806>] scst_cmd_thread+0x1c6/0x4b0 [scst]
 [<ffffffff8103e960>] ? default_wake_function+0x0/0x20
 [<ffffffffa0471640>] ? scst_cmd_thread+0x0/0x4b0 [scst]
 [<ffffffff810683e6>] kthread+0x96/0xa0
 [<ffffffff81003d94>] kernel_thread_helper+0x4/0x10
 [<ffffffff8103dcb1>] ? finish_task_switch+0x51/0xb0
 [<ffffffff81344dac>] ? _raw_spin_unlock_irq+0x1c/0x40
 [<ffffffff813458ad>] ? restore_args+0x0/0x30
 [<ffffffff81068350>] ? kthread+0x0/0xa0
 [<ffffffff81003d90>] ? kernel_thread_helper+0x0/0x10
---[ end trace 84b1e00ea2ac6651 ]---


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@1812 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2010-07-10 18:27:59 +00:00
Bart Van Assche
008841b622 Minor optimization: merged a srpt_get_cmd_state() and srpt_set_cmd_state() call.
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@1811 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2010-07-10 07:17:30 +00:00
Bart Van Assche
66ccc6d619 Reverted r1806 and fixed a race condition that could cause data corruption.
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@1808 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2010-07-09 18:12:24 +00:00
Bart Van Assche
45bbbbba5f Improved I/O stress test.
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@1807 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2010-07-09 18:04:23 +00:00
Bart Van Assche
cdd65273e9 Applied a temporary fix for data corruption that could occur when multiple initiators were accessing data on a multicore target system.
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@1806 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2010-07-08 18:29:52 +00:00
Bart Van Assche
2e07133917 Converted a WARN_ON() statement into PRINT_INFO().
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@1802 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2010-07-04 20:11:47 +00:00
Bart Van Assche
936f080310 Fixed a race condition that could cause SRP commands to be processed out of
order on a multicore system. Also, split send and receive completion queues
such that the amount of code that is executed under spinlock and with IRQs
disabled is minimal.


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@1801 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2010-07-04 19:44:33 +00:00
Bart Van Assche
4438a65592 Fixed grammar in a source code comment.
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@1800 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2010-06-30 18:54:29 +00:00
Bart Van Assche
3375930bad Cleanup.
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@1797 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2010-06-28 19:03:40 +00:00
Bart Van Assche
58e0bbd491 Whitespace-only changes for checkpatch.
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@1796 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2010-06-28 18:35:38 +00:00
Bart Van Assche
2e0703275d SRPT with thread=0 works again (was broken by r1714, the merge of the persistent reservation branch to the trunk).
Added more consistency checks.

git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@1795 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2010-06-28 18:23:28 +00:00
Bart Van Assche
c7369b432b Micro-optimized srpt_completion().
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@1792 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2010-06-26 10:42:06 +00:00
Bart Van Assche
e730fac09d Fixed sparse warnings.
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@1779 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2010-06-18 19:29:19 +00:00
Bart Van Assche
d3a2a54d48 Made sure endianness of ch->max_ti_iu_len is correct. The previous
implementation could result in e.g. the following message in /var/log/messages:

       ib_srpt: Received SRP_LOGIN_REQ with i_port_id 0x200b000453000581:0x4538330005811, t_port_id 0x66a00980074b8:0x66a00980074b8 and it_iu_len 996 on port 1 (guid=0xfe80000000000000:0x66a00a00074b8)
       ...
       ib_srpt: ***WARNING***: truncated sense data from 18 to -469565476 bytes

This patch was submitted by Chas Williams.


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@1777 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2010-06-17 16:33:37 +00:00
Bart Van Assche
165bcc0f64 Use tabs instead of spaces for indentation.
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@1748 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2010-06-06 07:09:39 +00:00
Bart Van Assche
7268591baf Added support for persistent reservations.
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@1747 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2010-06-05 18:29:57 +00:00
Bart Van Assche
dd303b6198 Added to repository.
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@1724 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2010-05-30 07:50:09 +00:00
Bart Van Assche
fdbc99557e Fixed build breakage caused by r1714.
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@1715 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2010-05-26 18:16:26 +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
Bart Van Assche
ca2c97f7ba Fixed checkpatch warnings about long lines.
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@1708 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2010-05-22 08:25:25 +00:00
Bart Van Assche
c5a981ff61 Refined a comment.
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@1675 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2010-05-02 10:09:50 +00:00
Bart Van Assche
b19930753a Added sysfs support.
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@1674 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2010-05-02 08:15:29 +00:00
Bart Van Assche
87fb70f624 OFED version number update.
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@1664 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2010-04-29 06:35:35 +00:00
Bart Van Assche
bb20653c37 Updated OFED version numbers.
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@1653 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2010-04-24 14:25:31 +00:00
Bart Van Assche
38575b3d34 RHEL 5 / CentOS 5 bug fix: the argument of flush_workqueue() is a workqueue
pointer, not a struct work pointer.


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@1581 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2010-04-04 11:55:37 +00:00
Bart Van Assche
4aadb84528 Added timeout handling for IB completions, in case it would ever happen
that a HCA does not send an IB completion for an RDMA operation or IB send.


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@1579 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2010-04-02 16:38:15 +00:00
Bart Van Assche
2e6b0aef42 Changes:
- Fixed a rare lockup triggered by module removal while I/O was ongoing.
- Made sure that IB cable removal works fine.
- Exported srpt_service_guid via sysfs.
- Made sure that ib_srpt.c compiles fine with #undef CONFIG_SCST_PROC.


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@1575 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2010-03-31 18:04:23 +00:00
Bart Van Assche
f2b01c8595 Converted function, enum and struct documentation to kernel-doc style.
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@1569 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2010-03-27 10:40:13 +00:00
Vladislav Bolkhovitin
cbaab260f1 Add new scst_cmd_get_queue_type()/scst_cmd_set_queue_type() accessors and use them in target drivers instead of direct access to SCST's cmd->queue_type.
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@1553 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2010-03-17 19:11:18 +00:00
Bart Van Assche
b05d967c8a Clarified a source code comment.
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@1543 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2010-03-15 19:25:29 +00:00
Bart Van Assche
e56b672502 Updated error messages -- req_lim < 0 is not an internal error but can be caused by a buggy initiator.
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@1532 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2010-03-03 19:36:05 +00:00
Bart Van Assche
a32e120e21 Added missing space in an error message.
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@1531 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2010-03-03 19:29:37 +00:00
Bart Van Assche
2d4d49f304 Fixed two WARN_ON() statements.
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@1512 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2010-02-19 12:03:48 +00:00
Bart Van Assche
c519012fb2 Factored out channel unregistration code into a new function srpt_unregister_channel().
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@1508 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2010-02-14 12:51:14 +00:00
Bart Van Assche
4f7e597345 Fixed a memory leak in an error path.
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@1507 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2010-02-14 12:11:54 +00:00
Bart Van Assche
40869e57d1 Moved srpt_unmap_sg_to_ib_sge(ch, ioctx) call back into srpt_abort_scst_cmd().
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@1506 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2010-02-14 12:08:47 +00:00
Bart Van Assche
add3508a0c Changes:
- Fixed race condition between SCST session registration and IB channel event
  handler in srpt_add_one(): at least in theory it was possible that 
  sdev->scst_tgt was accessed before being initialized properly.
- A kernel WARN_ON() is no longer triggered when a DREQ has been received after
  SCST session deregistration started.
- Made sure that srpt_unmap_sg_to_ib_sge() does not call ib_dma_unmap_sg()
  twice.
- Moved srpt_unmap_sg_to_ib_sge() call out of srpt_reset_ioctx() and
  srpt_abort_scst_cmd() into the callers of these functions.
- Renamed some of the SRPT command states.


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@1505 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2010-02-14 11:36:34 +00:00
Bart Van Assche
cedf31579e Removed handling of AESOLNT, CRSOLNT and LOSOLNT flags again.
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@1504 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2010-02-12 19:42:00 +00:00
Bart Van Assche
26866a1e28 Simplified implementation of the thread=1 mode.
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@1503 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2010-02-12 19:37:43 +00:00
Bart Van Assche
8981044fb8 Updated test instructions.
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@1502 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2010-02-12 19:30:08 +00:00
Bart Van Assche
492e570df0 Made ib_srpt easier to build on a multiboot system where multiple kernels
have been installed -- one kernel with OFED and one or more kernels without
OFED.


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@1498 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2010-02-11 19:28:58 +00:00
Bart Van Assche
7c04f47a6b Fixed two MODULE_PARM_DESC() clauses.
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@1497 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2010-02-11 19:27:49 +00:00
Bart Van Assche
0b3861da48 Added a blank line.
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@1483 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2010-01-29 19:09:06 +00:00
Bart Van Assche
421dbafa7c Changes:
- The entire receive queue can be used again instead of only SRPT_RQ_SIZE - 1
  elements (as in r1470).
- Added initiator-lockup-avoidance code to SRP_TSK_MGMT processing code too.


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@1473 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2010-01-17 13:07:46 +00:00
Bart Van Assche
5ce3870372 Updated test instructions.
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@1472 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2010-01-16 19:38:08 +00:00
Bart Van Assche
e3d9724359 Updated copyright statement.
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@1471 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2010-01-16 19:36:29 +00:00