Vladislav Bolkhovitin
355fa36d34
scst, EXPERIMENTAL: improve commands CPU affinity
...
Now commands on the fast path processed by the same thread throughout
all its lifetime.
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@6886 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2016-05-06 01:53:30 +00:00
Vladislav Bolkhovitin
fcb8b3c75e
Make copy manager update internal data on INQUIRY changing vdisk events
...
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@6885 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2016-05-05 01:53:17 +00:00
Vladislav Bolkhovitin
5ba4e1a707
scst_vdisk: extend vend_specific_id to 128 bytes
...
From Adrian Saul <Adrian.Saul@tpgtelecom.com.au >
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@6884 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2016-05-04 02:47:33 +00:00
Vladislav Bolkhovitin
33627cc8d8
When trying to remove a megaraid_sas device, the scst will hang inside
...
scst_free_device:
[ 380.448608] [4]: scst: Detached from scsi0, channel 2, id 1, lun 0, type 0
[ 601.138688] INFO: task kworker/0:0:4 blocked for more than 120 seconds.
[ 601.138756] Tainted: P OE 3.19.0-58-quantastor #64~14.04.1
[ 601.138810] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
[ 601.138869] kworker/0:0 D ffff88085c6fba58 0 4 2 0x00000000
[ 601.138926] Workqueue: events megasas_aen_polling [megaraid_sas]
[ 601.138930] ffff88085c6fba58 ffff88085c6f09d0 0000000000013e80 ffff88085c6fbfd8
[ 601.138934] 0000000000013e80 ffffffff81c1d4e0 ffff88085c6f09d0 ffff88085c6fba38
[ 601.138938] ffff88085c6fbbd8 7fffffffffffffff ffff88085c6fbbd0 ffff88085c6f09d0
[ 601.138942] Call Trace:
[ 601.138955] [<ffffffff817b5469>] schedule+0x29/0x70
[ 601.138960] [<ffffffff817b8574>] schedule_timeout+0x244/0x2c0
[ 601.138968] [<ffffffff8115fbcb>] ? irq_work_queue+0x6b/0x90
[ 601.138975] [<ffffffff810cb8e2>] ? wake_up_klogd+0x32/0x40
[ 601.138979] [<ffffffff810cbaf8>] ? console_unlock+0x208/0x480
[ 601.138983] [<ffffffff817b61c4>] wait_for_completion+0xa4/0x170
[ 601.138989] [<ffffffff810a1ea0>] ? wake_up_state+0x20/0x20
[ 601.138995] [<ffffffff8108d94c>] flush_workqueue+0x10c/0x5b0
[ 601.139002] [<ffffffff8108de05>] flush_scheduled_work+0x15/0x20
[ 601.139044] [<ffffffffc09314f6>] scst_free_device+0x16/0x50 [scst]
[ 601.139051] [<ffffffffc091a86f>] scst_remove+0x2df/0x3a0 [scst]
[ 601.139056] [<ffffffffc028c093>] ? enclosure_find+0x93/0xa0 [enclosure]
[ 601.139061] [<ffffffff814f3971>] device_del+0xe1/0x270
[ 601.139062] [<ffffffff814f3b22>] device_unregister+0x22/0x70
[ 601.139066] [<ffffffff815549ab>] __scsi_remove_device+0xbb/0xd0
[ 601.139068] [<ffffffff815549e6>] scsi_remove_device+0x26/0x40
[ 601.139074] [<ffffffffc039fb22>] megasas_aen_polling+0x362/0x610 [megaraid_sas]
[ 601.139076] [<ffffffff8108eeaf>] process_one_work+0x14f/0x440
[ 601.139077] [<ffffffff8108fab8>] worker_thread+0x118/0x510
[ 601.139079] [<ffffffff8108f9a0>] ? rescuer_thread+0x3d0/0x3d0
[ 601.139082] [<ffffffff81094b49>] kthread+0xc9/0xe0
[ 601.139084] [<ffffffff81094a80>] ? kthread_create_on_node+0x1c0/0x1c0
[ 601.139087] [<ffffffff817b9798>] ret_from_fork+0x58/0x90
[ 601.139089] [<ffffffff81094a80>] ? kthread_create_on_node+0x1c0/0x1c0
The problem is that scst_free_device will call flush_scheduled_work to wait
for ext_blockers_work, but scst_free_device itself is called from
schedule_work, thus creating deadlock.
Instead of using heavy-handed flush_scheduled_work, we use flush_work to wait
for ext_blockers_work to finish.
Signed-off-by: Chunwei Chen <david.chen@osnexus.com >
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@6883 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2016-05-04 02:43:06 +00:00
Bart Van Assche
5f59850096
scst_sysfs, LUN replacement: Initialize 'read_only' before using it
...
See also r6834.
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@6882 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2016-05-01 22:41:20 +00:00
Bart Van Assche
76b20c76b8
isert: fix race between teardown flow and connect flow
...
It is possible to get ESTABLISHED RDMACM event while the connection
is already started teardown flow (i.e. addr change).
At teardown the refcount is reduced to zero and we start releasing the
connection. In established event We need to check conn is not in teardown
flow by checking its ref count is not 0.
Signed-off-by: Israel Rukshin <israelr@mellanox.com >
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@6879 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2016-04-26 14:13:33 +00:00
Bart Van Assche
07bc4bb1af
isert: clean tmo timer when freeing the connection
...
The tmo timer is set when allocating a new connection.
We need to release it in case it didn't execute yet.
Else timer execution will lead to a NULL dereference bug on conn.
Signed-off-by: Israel Rukshin <israelr@mellanox.com >
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@6878 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2016-04-26 14:13:13 +00:00
Bart Van Assche
0283a854ed
isert: wait for RDMA CM event to complete before destroy resources
...
There is a race between RDMACM event handler and isert_conn_free.
The event handler use the connection resources and isert_conn_free
destroy them.
This commit fix multiple NULL dereference bugs.
Signed-off-by: Israel Rukshin <israelr@mellanox.com >
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@6877 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2016-04-26 14:12:47 +00:00
Bart Van Assche
f297ef6f38
isert: fix double free of a fake request
...
A nop that is sent from the scst is treated as a fake request.
When a fake request is allocated we release it immediately,
so it's wrong to release it also on a completion error (isert_pdu_err).
This commit fix a NULL dereference bug when receiving completion with
error on this nop.
Signed-off-by: Israel Rukshin <israelr@mellanox.com >
Signed-off-by: Ariel Nahum <arieln@mellanox.com >
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@6876 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2016-04-26 14:12:17 +00:00
Bart Van Assche
5bbc7433dc
scst: Move kref_get_unless_zero() definition to <scst/backport.h>
...
This patch is a slightly modified version of a patch supplied by
Israel Rukshin <israelr@mellanox.com >.
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@6875 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2016-04-26 04:13:42 +00:00
Bart Van Assche
82cff1ba81
scst_vdisk: Fix a regression introduced by r6873
...
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@6874 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2016-04-25 18:36:00 +00:00
Vladislav Bolkhovitin
afa0927a42
Some more cleanups
...
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@6873 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2016-04-21 02:19:25 +00:00
Vladislav Bolkhovitin
f97c54e690
scstadmin: prevent saving statistical dif_checks_failed attribute
...
From Marc Smith <marc.smith@mcc.edu >
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@6867 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2016-04-20 04:52:58 +00:00
Vladislav Bolkhovitin
10f01feb98
Follow-up for the previous commit
...
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@6866 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2016-04-20 04:34:43 +00:00
Vladislav Bolkhovitin
fce7964596
scst: decrease severity of "Copy Manager already registered" message, because it is harmless
...
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@6865 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2016-04-20 04:29:34 +00:00
Vladislav Bolkhovitin
fae8fb74b0
scst: cleanups and clarifications
...
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@6864 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2016-04-20 04:21:59 +00:00
Vladislav Bolkhovitin
fb0ad0b8cd
scst_user: improve backward compatibility with handlers relying on obsolete SCST_USER_UNREGISTER_DEVICE call
...
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@6863 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2016-04-20 04:00:00 +00:00
Vladislav Bolkhovitin
9ead865f6a
Cleanup
...
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@6862 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2016-04-20 03:44:21 +00:00
Vladislav Bolkhovitin
7219595e5c
iscsi-scst: fix 2 minor main Makefile issues
...
1. Fix build of progs and mods targets, if iscsi_scst_itf_ver.h does not exist
2. Fix small race for parallel build of "all" target, when iscsi_scst_itf_ver.h
not yet built, when progs or mods target need it
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@6861 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2016-04-20 03:17:16 +00:00
Vladislav Bolkhovitin
9cd57cf50f
Cleanup
...
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@6860 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2016-04-20 02:48:28 +00:00
Bart Van Assche
dc28d934d3
scst.spec.in: Disable executable flag again for kernel modules
...
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@6859 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2016-04-12 13:47:58 +00:00
Bart Van Assche
d619407d16
scst: Kernel v4.6-rc3 build fix
...
See also patch "mm: drop PAGE_CACHE_* and page_cache_{get,release}
definition".
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@6858 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2016-04-11 19:59:59 +00:00
Bart Van Assche
dec1b4a12d
scstadmin: Leave out "r" from RPM revision number
...
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@6857 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2016-04-09 03:11:52 +00:00
Bart Van Assche
e3988e8c92
scst.spec.in: Enable .debug generation for .ko files
...
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@6856 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2016-04-09 03:05:39 +00:00
Bart Van Assche
76cd77d64a
scst.spec.in: Leave out 'r' from revision number
...
RPM version comparison works correctly with numbers but not if the
revision starts with 'r'. Hence leave out the 'r'.
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@6855 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2016-04-09 03:04:09 +00:00
Bart Van Assche
b34cf85d83
scst_sysfs: Report LUN replacement failure correctly
...
This is a follow-up for r6834.
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@6854 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2016-03-27 22:44:44 +00:00
Bart Van Assche
520b66677d
scst: Fix RHEL 5 build
...
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@6853 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2016-03-27 17:26:50 +00:00
Bart Van Assche
86816401fa
scst: Move more backports from scst_debug.h into backport.h
...
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@6852 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2016-03-27 17:09:46 +00:00
Bart Van Assche
30c98e92cd
scst_local: Address checkpatch warnings
...
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@6851 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2016-03-27 16:57:04 +00:00
Bart Van Assche
30f362caa3
scst: Address more checkpatch warnings
...
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@6850 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2016-03-27 16:56:50 +00:00
Bart Van Assche
3990a6ccd4
iscsi-scstd: Insert a blank line after declarations
...
Additionally, surround complex values with parentheses, declare static
char arrays const and change C++ comments into C comments.
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@6849 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2016-03-27 16:24:59 +00:00
Bart Van Assche
c477b5f99c
iscsi-scstd: Fix more checkpatch complaints about whitespace
...
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@6848 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2016-03-27 16:16:06 +00:00
Bart Van Assche
2681ed8bcb
iscsi-scstd: Fix checkpatch complaints about whitespace
...
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@6847 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2016-03-27 16:10:45 +00:00
Bart Van Assche
3ab98d8174
iscsi-scst: Fix checkpatch complaints about whitespace
...
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@6846 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2016-03-27 16:10:26 +00:00
Bart Van Assche
4dfb9d10c7
fcst: Change "signed" into "signed int"
...
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@6845 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2016-03-27 15:57:41 +00:00
Bart Van Assche
45a032c357
fcst: Remove a CVS keyword marker
...
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@6844 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2016-03-27 15:57:03 +00:00
Bart Van Assche
d4fc2435ec
scst_mem: Remove a superfluous cast
...
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@6843 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2016-03-27 15:55:41 +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
7289593aff
scst: Fix checkpatch complaints about using spaces for indentation instead of tabs
...
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@6841 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2016-03-27 15:50:21 +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
3a7a5e7289
scst_vdisk: Fix handling of vdisk_cmd_params::iv
...
Avoid that the iv pointer can become a dangling pointer for
vdisk_fileio devices. Freeing iv without resetting iv_count
makes it namely possible that iv will be used after the memory
that pointer points at has been freed.
For vdisk_blockio devices, call vdisk_on_free_cmd_params() to
free the iv pointer.
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@6838 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2016-03-24 17:14:29 +00:00
Bart Van Assche
fef250eb90
scst_vdisk: Introduce vdisk_on_free_cmd_params()
...
This patch does not change any functionality.
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@6837 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2016-03-24 17:13:46 +00:00
Bart Van Assche
4f10d6254e
scst_vdisk: Remove superfluous semicolons
...
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@6836 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2016-03-24 17:13:06 +00:00
Bart Van Assche
eff3021fb5
scst: Port to Linux kernel v4.6
...
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@6835 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2016-03-24 04:08:12 +00:00
Bart Van Assche
cf459edf68
scst: Move LUN replacement code to scst_lib
...
Move the code for LUN replacement from scst_sysfs.c into scst_lib.c.
This patch reduces code duplication by calling __scst_acg_del_lun()
from inside the LUN reassignment code. This patch does not change
any functionality.
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@6834 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2016-03-18 23:10:39 +00:00
Bart Van Assche
da3b803d81
scst_lib: Introduce __scst_acg_del_lun()
...
This patch does not change any functionality.
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@6833 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2016-03-18 23:10:10 +00:00
Bart Van Assche
7d1a007256
scst_sysfs: Separate LUN addition from LUN replacement code
...
This patch does not change any functionality but makes
__scst_process_luns_mgmt_store() easier to read.
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@6832 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2016-03-18 23:09:39 +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
8aa0ecf666
scripts/generate-patched-kernel: Fix list-source-files path
...
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@6830 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2016-03-11 04:06:34 +00:00