Replaced a numeric constant by a symbolic one.
Renamed a function.
Updated several comments.
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@2097 d57e44dd-8a1f-0410-8b47-8ef2f437770f
- Multi-transport support added to scst_local
- Sysfs attributes "version" and "trace_level" added to scst_local
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@2060 d57e44dd-8a1f-0410-8b47-8ef2f437770f
- Made sure that in mode thread=1 not only send completions but also receive completions are processed in thread context.
- Merged IB send and receive completion queues again such that both types of completions are processed in a fairly.
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@1904 d57e44dd-8a1f-0410-8b47-8ef2f437770f
- Changed default value for the kernel module parameter thread from 0 to 1 because mode 0 can trigger soft lockup complaints under sufficient load.
- Changed default value for the kernel module parameter srpt_autodetect_cred_req from false to true.
Non-functional changes:
- Removed several superfluous casts in ib_srpt.c.
Performance-related changes:
- Rearranged if/then/else statements such that the most frequently executed code occurs first.
- When SCST_MAX_TGT_DEV_COMMANDS > 128, the SRP receive queue size is now SCST_MAX_TGT_DEV_COMMANDS instead of 128.
Bug fixes:
- Fixed performance bug in modes thread=0 and 2.
- Fixed a bug in IB send queue overflow handling.
- Fixed race related to IB completion thread creation (mode thread=1).
- Made sure that the following warning is no longer triggered during module removal:
WARNING: at fs/proc/generic.c:825 remove_proc_entry+0x261/0x2f0()
Call Trace:
[<ffffffff8104d74b>] warn_slowpath_common+0x7b/0xc0
[<ffffffff8104d7f1>] warn_slowpath_fmt+0x41/0x50
[<ffffffff8116e8a1>] remove_proc_entry+0x261/0x2f0
[<ffffffff810832c8>] ? debug_check_no_locks_freed+0xc8/0x150
[<ffffffff81082ecb>] ? mark_held_locks+0x6b/0xa0
[<ffffffff8110f95f>] ? kfree+0xcf/0x180
[<ffffffff810831a5>] ? trace_hardirqs_on_caller+0x145/0x190
[<ffffffff810831fd>] ? trace_hardirqs_on+0xd/0x10
[<ffffffffa05835c2>] srpt_unregister_procfs_entry+0x22/0x40 [ib_srpt]
[<ffffffffa0583aba>] srpt_release+0x8a/0x1a0 [ib_srpt]
[<ffffffffa04cbcc0>] scst_unregister_target+0x70/0x3f0 [scst]
[<ffffffff811bf6d7>] ? kobject_put+0x27/0x60
[<ffffffff8126ff67>] ? put_device+0x17/0x20
[<ffffffffa058587e>] srpt_remove_one+0xee/0x1a0 [ib_srpt]
[<ffffffffa03ddfc5>] ib_unregister_client+0x65/0x120 [ib_core]
[<ffffffffa0588f43>] srpt_cleanup_module+0x5f/0xc3 [ib_srpt]
[<ffffffff8108e8dd>] sys_delete_module+0x1bd/0x280
[<ffffffff8135e5ad>] ? retint_swapgs+0xe/0x13
[<ffffffff810831a5>] ? trace_hardirqs_on_caller+0x145/0x190
[<ffffffff810030db>] system_call_fastpath+0x16/0x1b
---[ end trace 3fc26663490f6a89 ]---
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@1901 d57e44dd-8a1f-0410-8b47-8ef2f437770f
Moved processing delay loop out of interrupt context.
Preparations for SRP_CRED_REQ support and run-time receive queue selection.
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@1880 d57e44dd-8a1f-0410-8b47-8ef2f437770f
Moved some thread=1 related functions in ib_srpt.c such that these are grouped in the source file.
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@1876 d57e44dd-8a1f-0410-8b47-8ef2f437770f
srpt_handle_rdma_comp() finished and before srpt_xmit_response() started works
properly.
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@1875 d57e44dd-8a1f-0410-8b47-8ef2f437770f
- Implemented a workaround for a race between ib_destroy_cq() and the IB
completion handlers. This race could trigger a kernel crash or kernel lockup
when unloading the ib_srpt module while I/O was ongoing or by performing
a relogin from an SRP initiator while I/O was ongoing.
- Moved the code for handling IB completions in single-threaded mode to
separate functions.
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@1848 d57e44dd-8a1f-0410-8b47-8ef2f437770f