Commit Graph

5636 Commits

Author SHA1 Message Date
Bart Van Assche
fa3c482bb3 scst: Build fix for kernel versions <= v4.8
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@7485 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2018-09-27 13:47:43 +00:00
Bart Van Assche
5f1cf8cf1d scst: Add a new latency measurement infrastructure
An example of the data produced by this infrastructure:

$ echo 1 >/sys/kernel/scst_tgt/measure_latency
$ sleep 10 # Wait until an initiator has submitted multiple I/O requests
$ cat /sys/kernel/scst_tgt/targets/ib_srpt/fe80\:0000\:0000\:0000\:0002\:c903\:00fa\:b7f2/sessions/fe80\:0000\:0000\:0000\:0002\:c903\:00a3\:4272/latency/r512
state count min max avg stddev
PARSE 219 1.3 26.6 2.2 2.5 us
PREPARE_SPACE 219 0.9 10.3 1.1 0.6 us
RDY_TO_XFER 219 0.7 1.7 0.7 0.2 us
TGT_PRE_EXEC 219 0.7 11.0 0.8 0.9 us
EXEC_CHECK_SN 219 0.7 1.7 0.8 0.2 us
PRE_DEV_DONE 219 11.3 3445.7 39.6 276.4 us
DEV_DONE 219 0.7 11.0 0.9 0.7 us
PRE_XMIT_RESP1 219 1.2 58.4 1.6 3.8 us
CSW2 219 0.7 1.6 0.8 0.1 us
PRE_XMIT_RESP2 219 0.7 1.5 0.7 0.1 us
XMIT_RESP 219 0.7 1.5 0.7 0.1 us
INIT_WAIT 219 1.0 57.3 2.1 4.4 us
INIT 219 0.9 27.4 1.6 2.4 us
CSW1 219 15.0 3856.1 74.2 264.8 us
EXEC_CHECK_BLOCKING 219 1.3 10.8 1.7 0.9 us
LOCAL_EXEC 219 0.7 1.8 0.7 0.1 us
REAL_EXEC 219 0.6 1.5 0.7 0.1 us
EXEC_WAIT 219 40.6 1021.7 54.4 68.7 us
XMIT_WAIT 219 6.4 1682.0 50.6 228.1 us
total 219 - - 236.9 2012.1 us


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@7484 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2018-09-27 04:09:27 +00:00
Bart Van Assche
8e454788bd scst: Improve kernel v4.18 block request allocation code further
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@7483 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2018-09-27 04:08:16 +00:00
Bart Van Assche
eeed9fc41e scst: Introduce the function scst_set_cmd_state()
This patch does not change any functionality.


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@7482 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2018-09-27 02:28:16 +00:00
Bart Van Assche
f1357f410e scst: Remove the existing latency measurement infrastructure
Remove the existing latency measurement infrastructure since it will be
replaced by a new and more powerful latency measurement infrastructure.


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@7481 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2018-09-27 02:25:43 +00:00
Bart Van Assche
2231b598c6 scst: Make command state numbers consecutive
This makes it easier for the compiler to optimize command state
switch statements.


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@7480 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2018-09-27 02:24:38 +00:00
Bart Van Assche
75b78880d0 scst: Fix block request allocation for kernel v4.18 and later
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@7479 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2018-09-27 02:23:57 +00:00
Bart Van Assche
e2e076cb84 qla2x00t: Add #include <linux/vmalloc.h>
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@7478 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2018-09-27 02:22:57 +00:00
Bart Van Assche
b5c7df62aa qla2x00t: Fix build against kernel versions >= v4.2
Reported-by: Pascal de Bruijn <p.debruijn@unilogic.nl>


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@7476 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2018-09-26 03:48:12 +00:00
Bart Van Assche
b1df825bbe qla2x00t: Avoid using higher order page allocations
Avoid that qla2x00_get_node_name_list() fails as follows:

kworker/0:2: page allocation failure: order:4, mode:0x240c0c0(GFP_KERNEL|__GFP_COMP|__GFP_ZERO)
CPU: 0 PID: 101 Comm: kworker/0:2 Not tainted 4.9.124-scst #3
Hardware name: Supermicro SYS-1028U-E1CR4+/X10DRU-i+, BIOS 3.1 06/08/2018
Workqueue: events q2t_del_sess_work_fn [qla2x00tgt]
 ffffa0954357f9e8 ffffffff9c2c2fd8 ffffffff9c721178 0000000000000001
 ffffa0954357fa70 ffffffff9c13eb7a 0240c0c00240c0c0 ffffffff9c721178
 ffffa0954357fa10 ffff9e6700000010 ffffa0954357fa80 ffffa0954357fa30
Call Trace:
 dump_stack+0x4d/0x65
 warn_alloc+0x13a/0x170
 __alloc_pages_nodemask+0x486/0xd70
 alloc_pages_current+0x6f/0x100
 kmalloc_order+0x18/0x40
 kmalloc_order_trace+0x24/0xa0
 __kmalloc+0x163/0x190
 qla2x00_get_node_name_list+0x249/0x3e0 [qla2xxx]
 q2t_del_sess_work_fn+0xd8/0x4a0 [qla2x00tgt]
 process_one_work+0x14f/0x440
 worker_thread+0x48/0x4e0
 kthread+0xd9/0xf0
 ret_from_fork+0x22/0x30

This is a slightly modified version of a patch from Pascal de Bruijn
<p.debruijn@unilogic.nl>.



git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@7475 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2018-09-23 03:03:38 +00:00
Bart Van Assche
6619a1a6ae scripts/specialize-patch: Follow-up for the kernel v4.19 port
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@7474 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2018-08-28 01:36:38 +00:00
Bart Van Assche
51ab2e8ebd scst: Port to Linux kernel v4.19
In Linux kernel v4.19 the function scsi_execute() has been replaced by the
following macro:

    /* Make sure any sense buffer is the correct size. */
    #define scsi_execute(sdev, cmd, data_direction, buffer, bufflen, sense,        \
                        sshdr, timeout, retries, flags, rq_flags, resid)   \
    ({                                                                     \
           BUILD_BUG_ON((sense) != NULL &&                                 \
                        sizeof(sense) != SCSI_SENSE_BUFFERSIZE);           \
           __scsi_execute(sdev, cmd, data_direction, buffer, bufflen,      \
                          sense, sshdr, timeout, retries, flags, rq_flags, \
                          resid);                                          \
    })

This macro only accepts a sense buffer that has been declared as an array
but no sense buffers that have been passed as a pointer to a function. To
avoid build errors, convert scst_scsi_execute() from a function into a macro.


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@7473 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2018-08-27 03:26:38 +00:00
Bart Van Assche
7d13a9430e isert-scst: Port to Linux kernel v4.19
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@7472 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2018-08-27 03:20:51 +00:00
Bart Van Assche
dab69e7d60 ib_srpt: Port to Linux kernel v4.19
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@7471 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2018-08-27 03:19:47 +00:00
Bart Van Assche
73597a8983 nightly build: Update kernel versions
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@7470 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2018-08-23 02:02:55 +00:00
Bart Van Assche
ee94569268 nightly build: Update kernel versions
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@7469 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2018-08-09 14:05:04 +00:00
Vladislav Bolkhovitin
74b2ae36e2 qla2x00t: fix possible crash with DLM PR sync enabled
Reported-By: Aaron Knister <aaron.s.knister@nasa.gov>
Analyzed-by: Bart Van Assche <bvanassche@acm.org>



git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@7468 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2018-08-08 22:25:43 +00:00
Bart Van Assche
546c6c6ebe qla2x00t: Various coding style fixes
This patch does not change any functionality.


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@7467 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2018-08-08 04:14:54 +00:00
Bart Van Assche
f1463d0606 scst: Leave a blank line after declarations
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@7466 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2018-08-08 04:13:42 +00:00
Vladislav Bolkhovitin
166dac3bb9 Web updates
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@7465 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2018-08-04 00:45:33 +00:00
Vladislav Bolkhovitin
16b4f4aba5 scst: cleanup follow up for r7449
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@7464 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2018-08-03 04:23:36 +00:00
Bart Van Assche
acc205d174 qla2x00t: Use %zd instead of %Zd
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@7463 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2018-08-03 03:38:23 +00:00
Bart Van Assche
1a4f34578d qla2x00t: Improve conformance with the coding standard further
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@7462 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2018-08-03 03:37:32 +00:00
Bart Van Assche
8c2a32f3af qla2x00t: Insert a space where the coding standard requires one
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@7461 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2018-08-03 03:30:20 +00:00
Bart Van Assche
10961c3dfd qla2x00t: Insert a space where the coding standard requires one
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@7460 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2018-08-03 03:25:06 +00:00
Bart Van Assche
1ac05eb695 qla2x00t: Remove spaces where these are not allowed by the coding standard
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@7459 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2018-08-03 03:19:17 +00:00
Bart Van Assche
d07888d5f9 qla2x00t: Change return (x) into return x
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@7458 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2018-08-03 03:09:58 +00:00
Bart Van Assche
1b18174c12 qla2x00t: Fix if/else coding style
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@7457 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2018-08-03 03:01:04 +00:00
Bart Van Assche
30cf7b4bda qla2x00t: Fix more checkpatch complaints about whitespace
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@7456 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2018-08-02 04:47:08 +00:00
Bart Van Assche
1c4649556d qla2x00t: Do not initialise globals/statics to 0. Detected by checkpatch.
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@7455 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2018-08-02 04:44:00 +00:00
Bart Van Assche
30c84b1282 qla2x00t: Do not initialise globals/statics to 0. Detected by checkpatch.
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@7454 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2018-08-02 04:42:42 +00:00
Bart Van Assche
5f478050ae qla2x00t: Fix checkpatch complaints about using spaces for indentation
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@7453 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2018-08-02 04:41:04 +00:00
Bart Van Assche
a6d7968bd9 qla2x00t: Avoid that checkpatch complains that (foo*) should be (foo *)
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@7452 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2018-08-02 04:27:58 +00:00
Bart Van Assche
8c3a885e4d qla2x00t: Fix spelling errors
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@7451 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2018-08-02 04:19:35 +00:00
Bart Van Assche
458cf2ee00 scst/include/scst.h: Port to Linux kernel v4.18
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@7450 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2018-08-02 03:58:47 +00:00
Bart Van Assche
6dc06a3cde scst, isert-scst: Revert the temporary kernel v4.16 workarounds
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@7449 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2018-08-01 04:44:20 +00:00
Bart Van Assche
2c4d50d067 scst/kernel/in-tree/Makefile.dev_handlers: Make sure that the CONFIG_SCST_* symbols are honored
This patch is based on a patch from Pascal de Bruijn.


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@7448 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2018-08-01 04:29:10 +00:00
Bart Van Assche
8f8f055dfa scst dev_handlers Makefile: Simplify this Makefile
None of the CONFIG_SCST_* symbols are defined in the regular SCST build.
Hence remove the rules that depend on these symbols.


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@7447 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2018-08-01 04:27:57 +00:00
Vladislav Bolkhovitin
4483ecf49a vdisk: Fix compilation for older compilers
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@7446 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2018-08-01 02:36:52 +00:00
Bart Van Assche
e8c99bf813 scst: Simplify blk_make_request() and blk_map_kern_sg()
For kernel versions >= 4.11.0, pass REQ_OP_SCSI_* as second argument
to blk_get_request() instead of READ or WRITE and setting REQ_OP_SCSI_*
later. For kernels < 4.11.0, instead of calling blk_rq_set_block_pc()
directly, call it indirectly through scsi_req_init().


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@7445 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2018-07-29 04:43:50 +00:00
Bart Van Assche
b1b5e8e497 isert-scst: Avoid that building against MOFED fails with "Unknown symbol backport_dependency_symbol"
Reported-by: Carsten Aulbert <carsten.aulbert@aei.mpg.de>
Signed-off-by: Sergey Gorenko <sergeygo@mellanox.com>


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@7444 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2018-07-24 03:17:05 +00:00
Bart Van Assche
d67f20abfb scst/include/backport.h: Unbreak the build for kernel version 2.6.30 and older
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@7443 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2018-07-24 02:38:35 +00:00
Bart Van Assche
6864e0b759 scripts/run-regression-tests: Include the qla2xxx driver
Make sure that not only the qla2x00tgt but also the qla2xxx_scst driver
gets built when scripts/run-regression-tests is run.


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@7442 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2018-07-23 04:32:28 +00:00
Bart Van Assche
30d36bbfe6 scripts/generate-kernel-patch: Make the patch format more standard
Make sure that both paths in the diff header have the same number of
components. This patch does not change the result of applying a patch
generated by this script.


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@7441 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2018-07-23 04:31:00 +00:00
Bart Van Assche
953b86a9a2 scripts/specialize-patch: Add a comment
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@7440 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2018-07-23 04:29:55 +00:00
Bart Van Assche
1c1693d06b qla2x00t: Port to Linux kernel v4.17
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@7439 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2018-07-23 04:29:35 +00:00
Bart Van Assche
eb2b6f6ccf qla2xxx: Simplify the kernel v4.11 port
This patch does not change any functionality.


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@7438 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2018-07-23 04:25:48 +00:00
Bart Van Assche
cf4c873849 qla2x00t: Introduce set_bsg_result()
This patch does not change any functionality.


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@7437 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2018-07-23 04:25:20 +00:00
Bart Van Assche
b6949a24b1 qla2xxx: Fix two potential buffer overflows
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@7436 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2018-07-23 04:24:16 +00:00
Bart Van Assche
4c01448dfa iscsi-scst: Simplify iscsi_get_initiator_port_transport_id()
From the snprintf() man page:
    
If n is zero, nothing shall be written and s may be a null pointer.

This patch does not change any functionality.


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@7435 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2018-07-23 04:23:26 +00:00