Commit Graph

5269 Commits

Author SHA1 Message Date
Bart Van Assche
76daca5677 scst_lib.c: Fix indentation
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@7105 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2017-03-08 04:43:23 +00:00
Vladislav Bolkhovitin
d91dd9b3ed Linux kernel v4.10 build fix.
Signed-off-by: Sebastian Herbszt <herbszt@gmx.de>



git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@7104 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2017-03-08 04:36:45 +00:00
Bart Van Assche
1bf5d439d6 scst: Coding style update related to the use of the keyword 'unsigned'
Use 'unsigned int' instead of 'unsigned' and 'unsigned long long'
instead of 'long long unsigned'.


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@7103 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2017-03-02 00:10:24 +00:00
Bart Van Assche
e372a0123e scst: Coding style updates related to whitespace
This patch changes whitespace only and nothing else.



git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@7102 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2017-03-02 00:09:14 +00:00
Bart Van Assche
0bb6de9471 scst_vdisk: Avoid that LUN refresh triggers a general protection fault
Avoid that triggering LUN referesh concurrently with device deletion
triggers the following:

general protection fault: 0000 [#1]
Workqueue: events vdev_inq_changed_fn [scst_vdisk]
Call Trace:
 _raw_spin_lock_bh+0x2b/0x30
 scst_cm_update_dev+0x87/0x190 [scst]
 scst_dev_inquiry_data_changed+0xfb/0x1b0 [scst]
 vdev_inq_changed_fn+0x60/0x120 [scst_vdisk]
 process_one_work+0x14d/0x410
 worker_thread+0x66/0x460
 kthread+0xdb/0x100
 ret_from_fork+0x3f/0x70

Reported-by: Jinpu Wang <jinpu.wang@profitbricks.com>
Tested-by: Jinpu Wang <jinpu.wang@profitbricks.com>


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@7101 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2017-03-01 15:31:59 +00:00
Bart Van Assche
08f2570761 scst_copy_mgr: Warn if LUN lookup fails
It really is a bug if LUN lookup fails. 


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@7100 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2017-02-27 22:36:33 +00:00
Bart Van Assche
19212e4f29 scst_copy_mgr: Avoid that scst_cm_check_access_acg() triggers a kernel warning
Avoid that the following kernel warning is triggered:

WARNING: CPU: 2 PID: 1761 at scst/src/scst_copy_mgr.c:2835 
Call Trace:
 dump_stack+0x86/0xc3
 __warn+0xc1/0xe0
 warn_slowpath_null+0x18/0x20
 scst_cm_check_access_acg+0x1c2/0x1d0 [scst]
 scst_cm_check_access+0x155/0x280 [scst]
 scst_cm_parse_id_tgt_descr+0x2e6/0x590 [scst]
 scst_cm_parse_descriptors+0x303/0xa60 [scst]
 scst_parse_descriptors+0x5b/0x130 [scst]
 scst_tgt_pre_exec+0x370/0x4a0 [scst]
 scst_process_active_cmd+0x455/0x770 [scst]
 scst_cmd_thread+0x1fb/0x690 [scst]
 kthread+0x102/0x140
 ret_from_fork+0x31/0x40



git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@7099 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2017-02-25 01:56:30 +00:00
Bart Van Assche
7ad87045dc scst_copy_mgr: Avoid that scst_cm_on_add_lun() triggers a kernel warning
Avoid that the following warning is triggered:

WARNING: CPU: 1 PID: 1282 at scst/src/scst_copy_mgr.c:2784 scst_cm_on_add_lun+0x141/0x1b0 [scst]
Call Trace:
 dump_stack+0x86/0xc3
 __warn+0xc1/0xe0
 warn_slowpath_null+0x18/0x20
 scst_cm_on_add_lun+0x141/0x1b0 [scst]
 scst_acg_add_lun+0x27f/0x370 [scst]
 __scst_process_luns_mgmt_store+0x589/0x5f0 [scst]
 scst_luns_mgmt_store_work_fn+0x22/0x30 [scst]
 scst_process_sysfs_works+0x7b/0x1c0 [scst]
 sysfs_work_thread_fn+0x11b/0x280 [scst]
 kthread+0x102/0x140
 ret_from_fork+0x31/0x40


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@7098 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2017-02-25 01:54:58 +00:00
Bart Van Assche
95fe66fbeb scst: Fix locking annotations
Avoid that the following warnings are triggered:

WARNING: CPU: 5 PID: 32343 at scst/src/scst_copy_mgr.c:2741 scst_cm_on_add_acg+0x12d/0x180 [scst]
Call Trace:
 [<ffffffff812a4d23>] dump_stack+0x86/0xc3
 [<ffffffff8106412b>] __warn+0xcb/0xf0
 [<ffffffff8106421d>] warn_slowpath_null+0x1d/0x20
 [<ffffffffa04f9b0d>] scst_cm_on_add_acg+0x12d/0x180 [scst]
 [<ffffffffa04b8084>] scst_alloc_add_acg+0xc4/0x280 [scst]
 [<ffffffffa0486b30>] scst_register_target+0x190/0x3a0 [scst]
 [<ffffffffa054f2de>] scst_cm_init+0xb8/0xdda [scst]
 [<ffffffffa054eab9>] init_scst+0xa06/0xc3f [scst]
 [<ffffffff8100043d>] do_one_initcall+0x3d/0x160
 [<ffffffff81154ae0>] do_init_module+0x5f/0x1f1
 [<ffffffff810efa69>] load_module+0x2719/0x2a50
 [<ffffffff810effcc>] SYSC_finit_module+0xbc/0xf0
 [<ffffffff810f001e>] SyS_finit_module+0xe/0x10
 [<ffffffff8152fe40>] entry_SYSCALL_64_fastpath+0x23/0xc1

WARNING: CPU: 2 PID: 12885 at scst/src/scst_copy_mgr.c:2826 scst_cm_check_access_acg+0x180/0x1e0 [scst]
Call Trace:
 [<ffffffff812a4d23>] dump_stack+0x86/0xc3
 [<ffffffff8106412b>] __warn+0xcb/0xf0
 [<ffffffff8106421d>] warn_slowpath_null+0x1d/0x20
 [<ffffffffa0502b00>] scst_cm_check_access_acg+0x180/0x1e0 [scst]
 [<ffffffffa0502cba>] scst_cm_check_access+0x15a/0x280 [scst]
 [<ffffffffa05030cb>] scst_cm_parse_id_tgt_descr+0x2eb/0x590 [scst]
 [<ffffffffa050a1d8>] scst_cm_parse_descriptors+0x308/0xa60 [scst]
 [<ffffffffa04d4440>] scst_parse_descriptors+0x60/0x130 [scst]
 [<ffffffffa04a3c05>] scst_tgt_pre_exec+0x375/0x4a0 [scst]
 [<ffffffffa04ac2a9>] scst_process_active_cmd+0x439/0x740 [scst]
 [<ffffffffa04adbb2>] scst_cmd_thread+0x202/0x6a0 [scst]
 [<ffffffff810883cf>] kthread+0xef/0x110
 [<ffffffff8153008f>] ret_from_fork+0x1f/0x40


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@7097 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2017-02-24 07:07:41 +00:00
Bart Van Assche
ab0e7cc0be scst_copy_mgr: Avoid that LUN removal triggers a BUG()
Reported-by: Jinpu Wang <jinpu.wang@profitbricks.com>


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@7096 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2017-02-24 02:08:17 +00:00
Bart Van Assche
585c5d2fe0 scst_copy_mgr: Convert comments about locking into runtime checks
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@7095 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2017-02-24 02:07:29 +00:00
Bart Van Assche
2a074789ac scstadmin: Revert r7014
The immediateExit() call introduced in r7014 prevents to assign multiple
values to attributes that support multiple values, e.g. 'allowed_portal'.
Hence revert r7014.


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@7092 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2017-02-05 06:52:06 +00:00
Vladislav Bolkhovitin
5930008dba Add scstadmin in the dist archive
Reported by David Chen <david.chen@osnexus.com>



git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@7091 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2017-01-24 00:29:41 +00:00
Bart Van Assche
4538bc1c81 scst: Fix a memory leak
Avoid that the memory allocated for struct scst_acn and its name is
leaked by scst_del_acg().


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@7090 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2017-01-11 01:16:07 +00:00
Bart Van Assche
b51c624855 ib_srpt: Only report that SRQ creation failed if it was attempted to create an SRQ
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@7089 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2017-01-08 21:46:20 +00:00
Bart Van Assche
3abcc849df ib_srpt: Destroy SRQ before freeing the buffers posted on the SRQ
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@7088 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2017-01-08 21:45:39 +00:00
Bart Van Assche
db686530c9 ib_srpt: Rename a symbolic constant
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@7087 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2017-01-08 21:10:54 +00:00
Bart Van Assche
c9b2dfa070 ib_srpt: Remove a local variable
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@7086 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2017-01-08 21:10:32 +00:00
Bart Van Assche
81fd215772 isert-scst: Follow-up for r7084
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@7085 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2016-12-27 20:42:22 +00:00
Bart Van Assche
9cbe881f2f isert-scst: Fix CentOS 7.3 build
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@7084 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2016-12-27 20:26:11 +00:00
Bart Van Assche
db36d29932 isert-scst: Rename SCST_DIR into SCST_SYMVERS_DIR
Additionally, align shell code.


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@7083 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2016-12-27 20:25:13 +00:00
Bart Van Assche
db5426169b ib_srpt: Improve portability
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@7082 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2016-12-27 20:23:31 +00:00
Bart Van Assche
6912463c2e ib_srpt: Fix nightly build
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@7081 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2016-12-27 20:21:53 +00:00
Vladislav Bolkhovitin
a24bf679b8 Cleanup
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@7080 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2016-12-22 03:07:19 +00:00
Vladislav Bolkhovitin
e57c13a0e8 Web updates
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@7079 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2016-12-21 03:42:30 +00:00
Vladislav Bolkhovitin
bdfc767077 scst: document nolockdep patches
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@7078 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2016-12-21 03:39:24 +00:00
Vladislav Bolkhovitin
5e73767a1b scst: minor forwarding mode fixes
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@7077 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2016-12-20 06:28:41 +00:00
Vladislav Bolkhovitin
283b30f603 scst: add thread_index sysfs attribute
This attribute exports per LUN thread index assigned by
scst_add_threads(). It can be used to look up which export thread is
serving which target since this index also appears in the export thread
name. This information then could be used to set CPU affinity for those threads to improve performance.



git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@7076 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2016-12-20 06:27:38 +00:00
Vladislav Bolkhovitin
bdb23b8923 scst: performance improvements
This patch trying to allocate memory in per-NUMA and per-CPU manner to
(significantly) improve performance for high IOPS cases.



git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@7075 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2016-12-20 06:21:13 +00:00
Vladislav Bolkhovitin
807836950b scst: improve latency statistics
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@7074 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2016-12-20 06:17:11 +00:00
Vladislav Bolkhovitin
2475def30d scst: add max_tgt_dev_commands sysfs attribute
This per-device attribute allows to control maximum number of SCSI
commands any session to this device can have in flight. It makes
currently hardcoded constant be run time configurable.



git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@7073 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2016-12-20 06:14:55 +00:00
Vladislav Bolkhovitin
42459a6725 scst: add ACA support
ACA (Auto Contingent Allegiance) is a way to handle CHECK CONDITION
status. It significantly improves performance of AIX systems.



git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@7072 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2016-12-20 06:10:56 +00:00
Vladislav Bolkhovitin
4e1dc1b526 scst: improve thin provisioning support
This patch adds gen_tp_soft_threshold_reached_UA attribute for thin
provisioned devices that allows to generate THIN PROVISIONING SOFT
THRESHOLD REACHED Unit Attention.



git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@7071 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2016-12-20 06:07:55 +00:00
Vladislav Bolkhovitin
5040dd22a4 iscsi-scst: document thread_pid attribute
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@7070 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2016-12-20 06:01:34 +00:00
Vladislav Bolkhovitin
c9b301bf39 iscsi-scst: add per_sess_dedicated_tgt_threads attribute in ini groups
If this attrubute is set, each iSCSI session for this initiator has
dedicated, i.e. not shared with other sessions, pool of the iscsi{wr,rd}
kernel threads.

Useful to control per-session CPU affinity to improve performance.



git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@7069 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2016-12-20 06:00:43 +00:00
Vladislav Bolkhovitin
df55eeb5da Minor misc changes
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@7068 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2016-12-20 05:55:19 +00:00
Vladislav Bolkhovitin
bb2f47e7a8 iscsi-scst: add target_ip attribute
It adds target_ip attribute containing target IP address in each
/sys/kernel/scst_tgt/targets/iscsi/TARGET/sessions/INITIATOR/INITIATOR_IP subdirectory.

It's useful to simplify monitoring management utilities



git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@7067 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2016-12-20 05:53:48 +00:00
Vladislav Bolkhovitin
80e49beea8 Put_page_callback and scst_exec_req_fifo patches for RHEL5/6
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@7066 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2016-12-20 05:49:07 +00:00
Vladislav Bolkhovitin
6c95c681ac scst: avoid false lockdep complaints about recursive locking
In some cases SCST needs to take multiple locks recursivly, e.g. to lock
all tgt_devs in a session. For this case SCST takes those locks in their
current sort order, e.g. by LUN for tgt_devs, then releases in the
opposite order. Unfortunately, lockdep complains on such actions as
recursive locking, then disables itself. The disabling itself action is
the most unpleasant one leading to lockdep being useless after this point.

Unfortunately, nested locking annotations can't help, because after
free, then alloc again, or after LUN change (in case of tgt_devs) order
of locks can change.

So, this patch implements a way to annotate some lock and unlock actions
as "no lockdep", so lockdep will not track them. It contains related
kernel patches for some kernels.

This is a debug aid only useful only with lockdep enabled kernels.



git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@7065 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2016-12-20 05:47:15 +00:00
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
Vladislav Bolkhovitin
b3e84925c4 Web updates
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@7060 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2016-12-16 04:25:04 +00:00
Vladislav Bolkhovitin
4abce7a7f3 Update SVN_TAGS for 3.2.0
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@7059 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2016-12-16 03:03:59 +00:00
Vladislav Bolkhovitin
53c0c00bf4 Add user space pieces to scst-dist-gzip.
They now essential part of the distribution



git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@7054 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2016-12-16 02:49:45 +00:00
Vladislav Bolkhovitin
55b7684bb7 fileio_tgt: avoid warnings about casting between pointers and integers of different size
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@7053 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2016-12-16 02:46:49 +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