Commit Graph

836 Commits

Author SHA1 Message Date
Bart Van Assche
122a343343 ib_srpt: Fix RHEL / CentOS 7.3 build
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@7063 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2016-12-17 12:46:51 +00:00
Bart Van Assche
aae05f0af4 ib_srpt: Fix build against MOFED v3.4
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@7062 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2016-12-17 12:41:41 +00:00
Bart Van Assche
3f9439a772 ib_srpt: Revert r7050
r7050 did not change any behavior so revert it. Note for myself: in the
ib_srpt driver the port number is set by the ib_modify_qp() call in
srpt_init_ch_qp().


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@7061 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2016-12-17 12:33:45 +00:00
Bart Van Assche
3749ca972b ib_srpt: Create QP on the RDMA port the initiator logged in to
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@7050 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2016-12-14 12:31:23 +00:00
Bart Van Assche
f09274f365 ib_srpt: Simplify a debug statement
It is likely that ib_device.dma_ops will be removed sooner or later.
Hence make sure that the ib_srpt driver does not depend on it.


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@7049 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2016-12-07 23:52:41 +00:00
Bart Van Assche
b3893277be ib_srpt: Reduce build time
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@7048 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2016-12-01 16:19:40 +00:00
Bart Van Assche
7cb08382ac ib_srpt Makefile: Follow-up for trunk r6138
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@7047 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2016-12-01 16:19:14 +00:00
Bart Van Assche
dca84e290b ib_srpt: Only complain if immediate data has to be copied if CONFIG_SLUB_DEBUG=n
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@7046 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2016-12-01 16:18:39 +00:00
Bart Van Assche
8c04ce53f4 ib_srpt: Port to Linux kernel v4.9
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@7018 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2016-10-25 20:50:34 +00:00
Bart Van Assche
120c66f924 ib_srpt: Cache global L_Key
This patch does not change any functionality.


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@7017 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2016-10-25 20:50:15 +00:00
Bart Van Assche
74a537dcfd ib_srpt: Enable S/G-list clustering
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@7004 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2016-10-10 18:51:42 +00:00
Bart Van Assche
47183f2b16 ib_srpt: Fix a race condition in the initialization code
Initialize port information before registering the CM ID. One of
the functions called by the CM handler (srpt_cm_req_recv())
namely uses the SCST target pointer so that pointer must be
initialized before the CM ID is registered. This patch avoids that
SRP login during ib_srpt initialization sporadically triggers the
following bug:

ib_srpt: Rejecting login with reason 0x10001
BUG: unable to handle kernel NULL pointer dereference at 0000000000000100
IP: [<ffffffffa09f1ccf>] srpt_cm_req_recv+0xf3f/0xf60 [ib_srpt]
Call Trace:
 [<ffffffffa09f1dd5>] srpt_ib_cm_req_recv+0xe5/0x110 [ib_srpt]
 [<ffffffffa06c6fae>] cm_process_work+0x1e/0x130 [ib_cm]
 [<ffffffffa06c9ca8>] cm_req_handler+0x398/0x460 [ib_cm]
 [<ffffffffa06c9e25>] cm_work_handler+0xb5/0x208 [ib_cm]
 [<ffffffff8107d2fc>] process_one_work+0x16c/0x350
 [<ffffffff8108002a>] worker_thread+0x17a/0x410
 [<ffffffff810843f6>] kthread+0x96/0xa0
 [<ffffffff8146f364>] kernel_thread_helper+0x4/0x10



git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@7003 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2016-10-10 18:51:06 +00:00
Bart Van Assche
95979e90cf ib_srpt: Retry with a smaller send queue size if QP creation fails
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@7001 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2016-10-10 18:10:13 +00:00
Bart Van Assche
9c466a504a ib_srpt: Rework QP failure reporting code
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@7000 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2016-10-10 18:09:51 +00:00
Bart Van Assche
ec59b087a7 ib_srpt README: Correct default srpt_sq_size
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@6999 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2016-10-10 18:09:32 +00:00
Bart Van Assche
c707a4fd2d ib_srpt: Use tabs instead of spaces to indent
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@6998 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2016-10-10 18:09:12 +00:00
Bart Van Assche
6d9c43f821 ib_srpt: Reduce default value of srpt_sq_size
Reduce the default value of the srpt_sq_size kernel module
parameter from 4096 to 256. This avoids on recent kernels
(e.g. 4.1.0) QP creation causes swiotlb to complain about a
failed allocation.

Reported-by: Curtis Maloney <curtis@tinbrain.net>


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@6981 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2016-08-28 16:27:43 +00:00
Bart Van Assche
558e064c20 ib_srpt: More MOFED 3.3 fixes for kernel versions >= 4.6.0
This is a slightly modified version of a patch from
Israel Rukshin <israelr@mellanox.com>.


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@6978 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2016-08-23 15:43:25 +00:00
Bart Van Assche
c02fcc5ba3 ib_srpt: Change unsigned into unsigned int
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@6976 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2016-08-22 17:05:46 +00:00
Bart Van Assche
d2dd61c072 isert-scst, srpt: Fix build on systems with kernel >= 4.2.0 + MOFED 3.3
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@6973 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2016-08-22 04:28:52 +00:00
Bart Van Assche
f221a515e2 ib_srpt: Address a checkpatch complaint about a missing space
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@6970 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2016-08-21 22:59:16 +00:00
Bart Van Assche
89e278e2d6 ib_srpt: Remove trailing whitespace
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@6969 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2016-08-21 22:58:45 +00:00
Bart Van Assche
6dd5fbfa27 srpt/Testing.txt: Leave out --norandommap
--verify and --norandommap are mutually exclusive. Hence leave out
--norandommap.


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@6932 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2016-08-09 20:18:03 +00:00
Vladislav Bolkhovitin
69863eb497 Increase version to 3.3
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@6927 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2016-08-03 02:32:17 +00:00
Bart Van Assche
e7603fc7a7 ib_srpt: Start with comp_vector 0
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@6901 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2016-06-09 22:18:10 +00:00
Bart Van Assche
da83a4a9a4 ib_srpt: Serialize sport->port_id accesses
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@6900 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2016-06-09 21:39:45 +00:00
Bart Van Assche
0d3c65105a ib_srpt: Remove a duplicate comment
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@6899 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2016-06-09 21:39:15 +00:00
Bart Van Assche
a6f0551eef ib_srpt: Introduce srpt_init_sport()
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@6898 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2016-06-09 21:14:29 +00:00
Bart Van Assche
1b8ba2f3cb ib_srpt: Add link_layer and port_id sysfs attributes
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@6897 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2016-06-09 21:03:34 +00:00
Bart Van Assche
0556c29fdd ib_srpt: Port to Linux kernel v4.7
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@6896 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2016-06-08 21:19:24 +00:00
Bart Van Assche
b109098efe ib_srpt: Fix checkpatch complaints about missing spaces
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@6842 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2016-03-27 15:52:41 +00:00
Bart Van Assche
8695583ee9 ib_srpt: Reduce CPU load caused by stopping a large number of sessions
Avoid that stopping a large number of SRPT sessions causes a high
context switch frequency and hence a high CPU load.


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@6840 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2016-03-24 17:15:23 +00:00
Bart Van Assche
63768c8715 ib_srpt: Fix a debug message
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@6839 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2016-03-24 17:14:49 +00:00
Bart Van Assche
af8f462071 ib_srpt: Revert r6822
Revision 6822 triggers a race condition, hence revert it.


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@6831 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2016-03-18 17:00:39 +00:00
Bart Van Assche
69471744d8 ib_srpt: Reduce command processing latency
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@6822 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2016-03-02 19:56:41 +00:00
Bart Van Assche
337b7e372e ib_srpt: Port to Linux kernel v4.5
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@6797 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2016-02-16 19:35:02 +00:00
Vladislav Bolkhovitin
fa2f54ac9e Copyrights updated
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@6787 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2016-01-22 04:04:43 +00:00
Bart Van Assche
76b1344cd3 ib_srpt: Fix in-tree build for kernel v4.4
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@6780 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2016-01-19 18:08:36 +00:00
Bart Van Assche
53a9829a45 ib_srpt: Fix a runtime warning
Avoid that the following warning is reported:
    
WARNING: CPU: 7 PID: 32692 at kernel/sched/core.c:7533 __might_sleep+0x82/0x90()
do not call blocking ops when !TASK_RUNNING; state=1 set at [<ffffffffa08f5f0b>]
 srpt_compl_thread+0xab/0x1c0 [ib_srpt]
Call Trace:
 [<ffffffff81251afb>] dump_stack+0x4f/0x74
 [<ffffffff810574cb>] warn_slowpath_common+0x8b/0xd0
 [<ffffffff810575b1>] warn_slowpath_fmt+0x41/0x70
 [<ffffffff810804c2>] __might_sleep+0x82/0x90
 [<ffffffff81113f74>] mempool_alloc+0x94/0x180
 [<ffffffffa04ff80c>] scst_alloc_mgmt_cmd+0x4c/0x120 [scst]
 [<ffffffffa04dc1e4>] scst_pre_rx_mgmt_cmd+0x84/0x1e0 [scst]
 [<ffffffffa04dc6ea>] scst_rx_mgmt_fn+0x8a/0x3e0 [scst]
 [<ffffffffa08f53fe>] scst_rx_mgmt_fn_lun+0x6e/0x90 [ib_srpt]
 [<ffffffffa08f55e1>] srpt_handle_tsk_mgmt+0x1c1/0x2f0 [ib_srpt]
 [<ffffffffa08f58d0>] srpt_handle_new_iu+0x1c0/0x230 [ib_srpt]
 [<ffffffffa08f5cd9>] srpt_process_rcv_completion+0x89/0xd0 [ib_srpt]
 [<ffffffffa08f5d74>] srpt_process_one_compl+0x54/0x70 [ib_srpt]
 [<ffffffffa08f5df9>] srpt_poll+0x69/0x90 [ib_srpt]
 [<ffffffffa08f5e3e>] srpt_process_completion+0x1e/0x40 [ib_srpt]
 [<ffffffffa08f5f3c>] srpt_compl_thread+0xdc/0x1c0 [ib_srpt]


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@6727 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2015-12-11 01:40:41 +00:00
Bart Van Assche
8aae2413b3 ib_srpt: Convert srpt_ch_list_empty() to RCU
This patch avoids that the following warning is reported when
unloading the ib_srpt kernel module:
    
WARNING: CPU: 9 PID: 33739 at kernel/sched/core.c:7533 __might_sleep+0x82/0x90()
do not call blocking ops when !TASK_RUNNING; state=2 set at [<ffffffff81098b73>] prepare_to_wait_event+0x63/0x110
Call Trace:
 [<ffffffff81251afb>] dump_stack+0x4f/0x74
 [<ffffffff810574cb>] warn_slowpath_common+0x8b/0xd0
 [<ffffffff810575b1>] warn_slowpath_fmt+0x41/0x70
 [<ffffffff810804c2>] __might_sleep+0x82/0x90
 [<ffffffff815186e3>] mutex_lock_nested+0x33/0x380
 [<ffffffffa08eeb7b>] srpt_ch_list_empty+0x2b/0x80 [ib_srpt]
 [<ffffffffa08f000c>] srpt_release_sport+0xcc/0x2a0 [ib_srpt]
 [<ffffffffa08f0215>] srpt_release+0x35/0x80 [ib_srpt]
 [<ffffffffa04d8650>] scst_unregister_target+0x70/0x380 [scst]
 [<ffffffffa08f26c1>] srpt_remove_one+0xb1/0x150 [ib_srpt]
 [<ffffffffa0145a35>] ib_unregister_client+0xe5/0x190 [ib_core]
 [<ffffffffa08f6485>] srpt_cleanup_module+0x21/0x2f [ib_srpt]
 [<ffffffff810dfbfb>] SyS_delete_module+0x17b/0x1c0
 [<ffffffff8151b517>] entry_SYSCALL_64_fastpath+0x12/0x6f


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@6726 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2015-12-11 01:39:46 +00:00
Bart Van Assche
d13b730d6d ib_srpt: Improve robustness of "make clean"
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@6725 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2015-12-11 01:38:46 +00:00
Bart Van Assche
098f6bd1c5 ib_srpt: Kernel v4.4 build fix
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@6698 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2015-11-18 22:10:54 +00:00
Bart Van Assche
948482551c ib_srpt: Follow-up for r6628
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@6646 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2015-11-10 01:55:23 +00:00
Bart Van Assche
37c4911d4f ib_srpt: Use kmalloc_array() instead of kmalloc() with multiply
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@6634 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2015-11-09 20:08:07 +00:00
Bart Van Assche
6a491c8cda ib_srpt: Avoid that checkpatch complains about using ENOSYS
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@6628 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2015-11-09 19:09:44 +00:00
Bart Van Assche
8ac8060d69 ib_srpt: Place constants at the right-hand-side in comparisons
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@6610 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2015-11-06 18:55:17 +00:00
Vladislav Bolkhovitin
5f7ac7f4bf Version updated to 3.2.0
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@6593 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2015-11-06 06:17:17 +00:00
Bart Van Assche
711e3c54a5 ib_srpt: Remove one_target_per_port parameter completely
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@6567 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2015-11-02 22:44:48 +00:00
Bart Van Assche
0acf6c0ec2 ib_srpt: Increase maximum sg-list length from 128 to 65536
This avoids that the following message appears in the target system
kernel log for SRP commands with a scatterlist with e.g. 256 elements:

Unable to complete command due to SG IO count limitation


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@6546 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2015-10-15 22:08:47 +00:00
Bart Van Assche
4d9c05f1ee ib_srpt: Increase maximum sg-list length from 128 to 65536
This avoids that the following message appears in the target system
kernel log:
    
Unable to complete command due to SG IO count limitation


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@6545 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2015-10-14 22:22:19 +00:00