Commit Graph

706 Commits

Author SHA1 Message Date
Bart Van Assche
ef830f9335 ib_srpt: Avoid that aborting a command triggers a race condition (merge r6181 from trunk)
git-svn-id: http://svn.code.sf.net/p/scst/svn/branches/3.0.x@6182 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2015-04-10 17:18:22 +00:00
Vladislav Bolkhovitin
fc51102b1a Boost version numbers
git-svn-id: http://svn.code.sf.net/p/scst/svn/branches/3.0.x@6143 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2015-03-11 04:26:28 +00:00
Bart Van Assche
8330f4c911 Version: Update from 3.0.0 into 3.0.1
git-svn-id: http://svn.code.sf.net/p/scst/svn/branches/3.0.x@6122 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2015-02-23 13:47:41 +00:00
Bart Van Assche
1c17224d12 Version: Update from 3.0.0 into 3.0.1
git-svn-id: http://svn.code.sf.net/p/scst/svn/branches/3.0.x@6117 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2015-02-23 13:12:02 +00:00
Vladislav Bolkhovitin
e565cbce6e Merged revisions 5955,5959-5961,5965 via svnmerge from
svn+ssh://vlnb@svn.code.sf.net/p/scst/svn/trunk

........
  r5955 | bvassche | 2014-12-22 05:10:41 -0800 (Mon, 22 Dec 2014) | 1 line
  
  Update for kernel 3.18
........
  r5959 | bvassche | 2015-01-06 05:25:28 -0800 (Tue, 06 Jan 2015) | 1 line
  
  scst_calc_block_shift: Log block shift and sector size upon mismatch
........
  r5960 | bvassche | 2015-01-07 01:20:06 -0800 (Wed, 07 Jan 2015) | 4 lines
  
  scst_local: Fix unique per session sas address
  
  Signed-off-by: Sebastian Herbszt <herbszt@gmx.de>
........
  r5961 | bvassche | 2015-01-09 04:23:25 -0800 (Fri, 09 Jan 2015) | 4 lines
  
  scst_sysfs: return EINVAL on too big LUN
  
  Signed-off-by: Sebastian Herbszt <herbszt@gmx.de>
........
  r5965 | bvassche | 2015-01-13 00:55:46 -0800 (Tue, 13 Jan 2015) | 68 lines
  
  qla2x00t: Copy entire SCST sense buffer to q2x ctio
  
  There seems to be a bug in passing sense information to QLA HBAs, where 
  the last 2 bytes of the sense data (ASC, ASCQ) are not copied to the low 
  level sense buffer.
  We encountered this in ESX, which relies on these 2 bytes to parse the 
  MISCOMPARE sense code (0xE1, 0x1D, 0x00).
  Bellow is a simple test to recreate this issue, but during vMotion 
  operations (where VMs are moved from one host to another), this may 
  cause the operation to fail leaving the VM in an inconsistent state.
  
  The test I ran to verify that we are indeed missing the bytes is the 
  following:
  1. Create a SCST based device
  2. Expose the device to 2 ESX hosts
  3. Format the device as VMFS5, create a test directory
  4. From both hosts, I start writing to this directory (no VMs involved, 
  just write normal files)
  
  At this stage, both ESX hosts try to take access to the directory.
  The VMFS filesystem contains a per-directory lock which is managed by 
  COMPARE AND WRITE command.
  Each ESX will attempt to change the VMFS lock location from unlocked to 
  locked to create the new file.
  
  Obviously there are bound to be failures (which are equivalent to 
  programming locking conflicts), these are reported by the MISCOMPARE 
  sense code.
  Upon these MISCOMPARE errors, the host will re-try taking the lock until 
  it succeeds, and will then proceed to perform the write operation on the 
  directory.
  
  Due to the bug in copying the sense buffer from the SCST core to the QLA 
  ctio, instead of the full sense code, only the key (0xE) is sent, and 
  ESX does not know how to handle it resulting in IO error.
  
  Here are the errors as they appear on the command line:
  /vmfs/volumes/54a297c4-ca5af1cc-7f94-002219d20f28/ats_test # 
  ./open_close_test-esx2.sh
  ./open_close_test-esx2.sh: line 8: can't create 
  ats_fileoptest-esx2_1.txt: Input/output error
  ./open_close_test-esx2.sh: line 8: can't create 
  ats_fileoptest-esx2_21.txt: Input/output error
  ./open_close_test-esx2.sh: line 8: can't create 
  ats_fileoptest-esx2_110.txt: Input/output error
  ./open_close_test-esx2.sh: line 8: can't create 
  ats_fileoptest-esx2_111.txt: Input/output error
  
  In the /var/log/vmkernel.log, we can see that the sense information is 
  missing (0xE, 0x0, 0x0) instead of (0xE, 0x1D, 0x0).
  2014-12-30T12:13:20.714Z cpu6:33519)ScsiDeviceIO: 2338: 
  Cmd(0x412e84f957c0) 0x89, CmdSN 0x234d from world 519051 to dev 
  "eui.0024f400d5020007" failed H:0x0 D:0x2 P:0x0 Valid sense data: 0xe 0x0 0x0.
  2014-12-30T12:13:20.766Z cpu6:33519)ScsiDeviceIO: 2338: 
  Cmd(0x412e84f91d00) 0x89, CmdSN 0x2350 from world 519051 to dev 
  "eui.0024f400d5020007" failed H:0x0 D:0x2 P:0x0 Valid sense data: 0xe 0x0 0x0.
  2014-12-30T12:13:20.766Z cpu6:33519)ScsiDeviceIO: 2338: 
  Cmd(0x412e80449fc0) 0x89, CmdSN 0x234f from world 519051 to dev 
  "eui.0024f400d5020007" failed H:0x0 D:0x2 P:0x0 Valid sense data: 0xe 0x0 0x0.
  
  This patch fixes this issue, the test will run without a problem with the
  fix (no IO errors, all the files are properly written to the directory).
  
  Signed-off-by: Shahar Salzman <shahar.salzman@kaminario.com>
  Reviewed-by: Eran Mann <eran.mann@kaminario.com>
  [bvanassche: simplified implementation]
  Signed-off-by: Bart Van Assche <bvanassche@acm.org>
........


git-svn-id: http://svn.code.sf.net/p/scst/svn/branches/3.0.x@6110 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2015-02-21 04:10:37 +00:00
Bart Van Assche
d8da2ff95d ib_srpt: Speed up kernel driver unloading after a cable pull (merge r5727 from trunk)
git-svn-id: http://svn.code.sf.net/p/scst/svn/branches/3.0.x@5921 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-12-05 10:57:03 +00:00
Bart Van Assche
1871ca8abc Add kernel 3.17 build infrastructure (merge r5883 from trunk)
git-svn-id: http://svn.code.sf.net/p/scst/svn/branches/3.0.x@5907 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-12-03 17:13:06 +00:00
Bart Van Assche
ef69510af0 ib_srpt: Make "make -j<n> install" work for n >= 2 if "make all" has not been run first (merge r5806 from trunk)
git-svn-id: http://svn.code.sf.net/p/scst/svn/branches/3.0.x@5807 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-09-15 12:32:02 +00:00
Bart Van Assche
941e51b727 ib_srpt: Version 3.0.0
git-svn-id: http://svn.code.sf.net/p/scst/svn/branches/3.0.x@5768 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-09-04 12:45:59 +00:00
Bart Van Assche
d15786cd33 ib_srpt: Kernel 3.17 build fix (merge r5725 from trunk)
git-svn-id: http://svn.code.sf.net/p/scst/svn/branches/3.0.x@5749 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-09-03 09:19:07 +00:00
Bart Van Assche
89d1800244 Add kernel 3.16 nightly build infrastructure (merge r5719 from trunk)
git-svn-id: http://svn.code.sf.net/p/scst/svn/branches/3.0.x@5748 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-09-03 09:17:39 +00:00
Bart Van Assche
0b47e7bf41 srpt/Makefile: SLES + Mellanox OFED build fix (merge r5679:5681 from trunk)
git-svn-id: http://svn.code.sf.net/p/scst/svn/branches/3.0.x@5747 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-09-03 09:14:20 +00:00
Bart Van Assche
a41e4ea1b5 srpt/README: Fix SLES patch instructions (merge r5682 from trunk)
git-svn-id: http://svn.code.sf.net/p/scst/svn/branches/3.0.x@5746 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-09-03 09:12:08 +00:00
Bart Van Assche
99100ec2a1 nightly build: Add kernel 3.15 build infrastructure (merge r5611 from trunk)
git-svn-id: http://svn.code.sf.net/p/scst/svn/branches/3.0.x@5636 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-06-29 05:25:55 +00:00
Bart Van Assche
1c4fb8e1e6 ib_srpt: Set SCSI residual fields in SRP_CMD reply (merge r5622 from trunk)
git-svn-id: http://svn.code.sf.net/p/scst/svn/branches/3.0.x@5635 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-06-29 05:24:11 +00:00
Bart Van Assche
87e512601a Skip "depmod" while building an RPM (merge r5612 from trunk)
git-svn-id: http://svn.code.sf.net/p/scst/svn/branches/3.0.x@5634 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-06-29 05:22:58 +00:00
Bart Van Assche
34a56ef337 ib_srpt: Remove existing ib_srpt.ko kernel modules before installation (merge r5621, r5628 and r5630 from trunk)
git-svn-id: http://svn.code.sf.net/p/scst/svn/branches/3.0.x@5633 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-06-29 05:20:31 +00:00
Bart Van Assche
37ef0a30ee ib_srpt: Merge from trunk
git-svn-id: http://svn.code.sf.net/p/scst/svn/branches/3.0.x@5599 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-06-13 06:59:13 +00:00
Bart Van Assche
68489e57f9 ib_srpt: Merge build and login fixes from trunk
git-svn-id: http://svn.code.sf.net/p/scst/svn/branches/3.0.x@5580 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-06-11 14:33:30 +00:00
Vladislav Bolkhovitin
f7bd8e034b Merged revisions 5543,5545 via svnmerge from
svn+ssh://vlnb@svn.code.sf.net/p/scst/svn/trunk

........
  r5543 | bvassche | 2014-05-23 00:33:53 -0700 (Fri, 23 May 2014) | 1 line
  
  RHEL 7 build fixes
........
  r5545 | bvassche | 2014-05-23 01:36:36 -0700 (Fri, 23 May 2014) | 1 line
  
  scripts/rebuild-rhel-kernel-rpm: Add RHEL 7 RC support
........


git-svn-id: http://svn.code.sf.net/p/scst/svn/branches/3.0.x@5565 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-06-04 03:12:05 +00:00
Bart Van Assche
909abff111 ib_srpt: Source code comment spelling fix
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5518 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-05-12 15:56:45 +00:00
Bart Van Assche
d3d094d160 ib_srpt: Fix two recently introduced checkpatch complaints about whitespace
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5498 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-04-30 05:30:45 +00:00
Bart Van Assche
424b231e96 ib_srpt: Make LUN masking work again
This patch fixes a regression that was introduced in r5493.


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5495 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-04-29 12:39:50 +00:00
Bart Van Assche
607487caca ib_srpt, README: Fix RDMA/CM login instructions
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5494 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-04-29 12:35:41 +00:00
Bart Van Assche
6cbe580d89 ib_srpt: Unload properly with RDMA/CM disabled
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5474 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-04-24 18:43:41 +00:00
Bart Van Assche
99b7abe259 ib_srpt, Makefile: Introduce the OFED_KERNEL_DIR variable
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5473 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-04-24 12:27:00 +00:00
Bart Van Assche
eae0318512 ib_srpt: Make srpt_disconnect_ch() close sessions properly that have not yet reached the connected state
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5472 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-04-24 11:11:26 +00:00
Bart Van Assche
cd0dcb32ab ib_srpt: Add support in the Makefile for MLNX OFED and for OFED 3.x
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5471 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-04-24 10:38:37 +00:00
Bart Van Assche
a4a01d6675 ib_srpt: OFED 3.12 build fix
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5470 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-04-24 10:37:58 +00:00
Bart Van Assche
54a84dff08 ib_srpt: Clean up the CM event handling messages (part 3)
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5462 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-04-23 13:38:54 +00:00
Bart Van Assche
4181477639 ib_srpt: RHEL 5.9 build fix (part 2)
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5461 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-04-23 09:20:52 +00:00
Bart Van Assche
3f76f4e792 ib_srpt, RDMA/CM: Avoid hanging sessions due to a cable pull
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5460 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-04-23 09:04:15 +00:00
Bart Van Assche
05c8c1548c ib_srpt: Clean up the CM event handling code (part 2)
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5459 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-04-23 09:02:29 +00:00
Bart Van Assche
8fd1252268 ib_srpt: Clean up the CM event handling code
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5458 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-04-23 08:59:18 +00:00
Bart Van Assche
dafaa63ea0 ib_srpt: RHEL 5.9 build fix
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5457 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-04-23 08:57:17 +00:00
Bart Van Assche
c0d9aee18e ib_srpt: RHEL 6.5 build fix
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5447 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-04-18 12:44:48 +00:00
Bart Van Assche
fc18736ce4 ib_srpt: Build fix for kernel versions < 3.0
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5446 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-04-18 12:38:39 +00:00
Bart Van Assche
fa58faf95b ib_srpt: Add RDMA/CM support
Or in other words, add RoCE and iWARP support.


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5445 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-04-18 12:22:30 +00:00
Bart Van Assche
c29fd6f34d ib_srpt: Move the code for checking the QP timeout
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5444 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-04-18 12:11:18 +00:00
Bart Van Assche
f234b9db8a ib_srpt: Use a mutex instead of a spinlock to protect the channel list
This is allowed because all CM callback functions are invoked from thread
context.


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5443 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-04-18 12:10:47 +00:00
Bart Van Assche
97241d4e29 ib_srpt: Prepare RDMA/CM support
Move IB/CM members into a new struct. Report channel pointer instead of CM ID
pointer in diagnostic messages.


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5442 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-04-18 12:09:33 +00:00
Bart Van Assche
ffb6115cb9 ib_srpt: Remove a superfluous check from the REQ handler
ib_send_cm_rep() checks the connection state before sending a response.
Hence checking ch->state before calling ib_send_cm_rep() is superfluous,
so remove that check and also the locking that is no longer needed.


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5441 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-04-18 12:08:00 +00:00
Bart Van Assche
4377509628 ib_srpt: Move IB/CM knowledge out of srpt_cm_req_recv()
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5440 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-04-18 12:04:05 +00:00
Bart Van Assche
ac079a1545 ib_srpt: Update README
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5439 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-04-18 11:09:55 +00:00
Bart Van Assche
2b2b47bb85 nightly build: Add kernel 3.14 build infrastructure
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5433 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-04-18 05:50:04 +00:00
Bart Van Assche
f589744f58 ib_srpt: Remove a superfluous assignment
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5427 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-04-16 09:14:31 +00:00
Bart Van Assche
4acf8e249f ib_srpt: Cache P_Key lookups
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5426 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-04-16 08:23:11 +00:00
Bart Van Assche
5b7e52b654 ib_srpt: Clean up the code that prints the dgid during login
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5425 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-04-16 08:08:50 +00:00
Bart Van Assche
8c8c9534ee ib_srpt: Constify two arguments of srpt_get_nexus()
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5424 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-04-16 08:01:58 +00:00
Bart Van Assche
3f59c15917 ib_srpt: Disable RDMA access by the initiator
With the SRP protocol all RDMA operations are initiated by the target.
Since no RDMA operations are initiated by the initiator, do not grant
the initiator permission to submit RDMA reads or writes to the target.


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5423 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-04-16 07:30:34 +00:00