- 16 3月, 2014 6 次提交
-
-
由 Shlomo Pongratz 提交于
Replace the session lock with two locks, a forward lock and a backwards lock named frwd_lock and back_lock respectively. The forward lock protects resources that change while sending a request to the target, such as cmdsn, queued_cmdsn, and allocating task from the commands' pool with kfifo_out. The backward lock protects resources that change while processing a response or in error path, such as cmdsn_exp, cmdsn_max, and returning tasks to the commands' pool with kfifo_in. Under a steady state fast-path situation, that is when one or more processes/threads submit IO to an iscsi device and a single kernel upcall (e.g softirq) is dealing with processing of responses without errors, this patch eliminates the contention between the queuecommand()/request response/scsi_done() flows associated with iscsi sessions. Between the forward and the backward locks exists a strict locking hierarchy. The mutual exclusion zone protected by the forward lock can enclose the mutual exclusion zone protected by the backward lock but not vice versa. For example, in iscsi_conn_teardown or in iscsi_xmit_data when there is a failure and __iscsi_put_task is called, the backward lock is taken while the forward lock is still taken. On the other hand, if in the RX path a nop is to be sent, for example in iscsi_handle_reject or __iscsi_complete_pdu than the forward lock is released and the backward lock is taken for the duration of iscsi_send_nopout, later the backward lock is released and the forward lock is retaken. libiscsi_tcp uses two kernel fifos the r2t pool and the r2t queue. The insertion and deletion from these queues didn't corespond to the assumption taken by the new forward/backwards session locking paradigm. That is, in iscsi_tcp_clenup_task which belongs to the RX (backwards) path, r2t is taken out from r2t queue and inserted to the r2t pool. In iscsi_tcp_get_curr_r2t which belong to the TX (forward) path, r2t is also inserted to the r2t pool and another r2t is pulled from r2t queue. Only in iscsi_tcp_r2t_rsp which is called in the RX path but can requeue to the TX path, r2t is taken from the r2t pool and inserted to the r2t queue. In order to cope with this situation, two spin locks were added, pool2queue and queue2pool. The former protects extracting from the r2t pool and inserting to the r2t queue, and the later protects the extracing from the r2t queue and inserting to the r2t pool. Signed-off-by: NShlomo Pongratz <shlomop@mellanox.com> Signed-off-by: NOr Gerlitz <ogerlitz@mellanox.com> [minor fix up to apply cleanly and compile fix] Signed-off-by: NMike Christie <michaelc@cs.wisc.edu> Signed-off-by: NJames Bottomley <JBottomley@Parallels.com>
-
由 Jayamohan Kallickal 提交于
Setting DMA bit mask 64 and roll back to 32 if not supported. Signed-off-by: NMinh Tran <minhduc.tran@emulex.com> Signed-off-by: NJayamohan Kallickal <jayamohan.kallickal@emulex.com> Reviewed-by: NMike Christie <michaelc@cs.wisc.edu> Signed-off-by: NJames Bottomley <JBottomley@Parallels.com>
-
由 Jayamohan Kallickal 提交于
scsi_cmnd n io_task was not NULL when - Link goes down while IO was happening and session is closed. - Task for which TMF was sent. Signed-off-by: NJohn Soni Jose <sony.john-n@emulex.com> Signed-off-by: NJayamohan Kallickal <jayamohan.kallickal@emulex.com> Reviewed-by: NMike Christie <michaelc@cs.wisc.edu> Signed-off-by: NJames Bottomley <JBottomley@Parallels.com>
-
由 Jayamohan Kallickal 提交于
In iSCSI Boot scenario, when machine is reboot/shutdown phase the active sessions are not closed. Driver queue cleanup is done as part of unload and device is disabled. Sessions are still active, iSCSI commands are issued from session which comes to driver, as driver cleanup and device disabled there is kernel stack dump with errors. Fix is invoking iscsi_session_failure with ISCSI_ERR_INVALID_HOST on all the active sessions when shutdown routine is called. Signed-off-by: NJohn Soni Jose <sony.john-n@emulex.com> Signed-off-by: NJayamohan Kallickal <jayamohan.kallickal@emulex.com> Reviewed-by: NMike Christie <michaelc@cs.wisc.edu> Signed-off-by: NJames Bottomley <JBottomley@Parallels.com>
-
由 Jayamohan Kallickal 提交于
The doorbel format has been updated to support additonal functionalities of SKH-R adapter. These changes are made such that older FW also works fine. Signed-off-by: NJohn Soni Jose <sony.john-n@emulex.com> Signed-off-by: NJayamohan Kallickal <jayamohan.kallickal@emulex.com> Reviewed-by: NMike Christie <michaelc@cs.wisc.edu> Signed-off-by: NJames Bottomley <JBottomley@Parallels.com>
-
由 Jayamohan Kallickal 提交于
When an MBX command timeout happens,the resources associated with the MBX command were freed. If FW were to give the response to host after the timeout value set by driver then driver crashes as the MBX Cmd resources were already freed. This patch fixes this issue by maintaing a state flag for each of the MBX command posted/timedout/completed. Signed-off-by: NJohn Soni Jose <sony.john-n@emulex.com> Signed-off-by: NJayamohan Kallickal <jayamohan.kallickal@emulex.com> Reviewed-by: NMike Christie <michaelc@cs.wisc.edu> Signed-off-by: NJames Bottomley <JBottomley@Parallels.com>
-
- 10 3月, 2014 1 次提交
-
-
由 Mike Christie 提交于
https://bugzilla.kernel.org/show_bug.cgi?id=67091 Cc: Jayamohan Kallickal <Jayamohan.Kallickal@emulex.com> Signed-off-by: NJames Bottomley <JBottomley@Parallels.com>
-
- 25 10月, 2013 19 次提交
-
-
由 Jayamohan Kallickal 提交于
If certain configuration it is possible that ICD range is not page-aligned. SGL posting failed in these configuration and driver load was not success. This fix aligns ICD range values and SGL posting for IO is done. Signed-off-by: NJohn Soni Jose <sony.john-n@emulex.com> Signed-off-by: NJayamohan Kallickal <jayamohan.kallickal@emulex.com> Signed-off-by: NJames Bottomley <JBottomley@Parallels.com>
-
由 Jayamohan Kallickal 提交于
Signed-off-by: NMinh Tran <minhduc.tran@emulex.com> Signed-off-by: NJohn Soni Jose <sony.john-n@emulex.com> Signed-off-by: NJayamohan Kallickal <jayamohan.kallickal@emulex.com> Signed-off-by: NJames Bottomley <JBottomley@Parallels.com>
-
由 Jayamohan Kallickal 提交于
When iSCSI stack invokes Abort or Reset handlers, the aborted tasks Invalid Bit in WRB needs to be set. Else FW will not be aware of the command invalidated which leads to BAD_WRB error posted by FW. Signed-off-by: NJohn Soni Jose <sony.john-n@emulex.com> Signed-off-by: NJayamohan Kallickal <jayamohan.kallickal@emulex.com> Signed-off-by: NJames Bottomley <JBottomley@Parallels.com>
-
由 Jayamohan Kallickal 提交于
Signed-off-by: NJohn Soni Jose <sony.john-n@emulex.com> Signed-off-by: NJayamohan Kallickal <jayamohan.kallickal@emulex.com> Signed-off-by: NJames Bottomley <JBottomley@Parallels.com>
-
由 Jayamohan Kallickal 提交于
The MSIx to be created for SKH-R adapter should be based on eq_count returned by get_fw_config. Signed-off-by: NJohn Soni Jose <sony.john-n@emulex.com> Signed-off-by: NJayamohan Kallickal <jayamohan.kallickal@emulex.com> Signed-off-by: NJames Bottomley <JBottomley@Parallels.com>
-
由 Jayamohan Kallickal 提交于
Signed-off-by: NJohn Soni Jose <sony.john-n@emulex.com> Signed-off-by: NJayamohan Kallickal <jayamohan.kallickal@emulex.com> Signed-off-by: NJames Bottomley <JBottomley@Parallels.com>
-
由 Jayamohan Kallickal 提交于
Display CID available on each iSCSI Fn which can be used to offload a connection. The display is split across available CID on each chute. Signed-off-by: NJohn Soni Jose <sony.john-n@emulex.com> Signed-off-by: NJayamohan Kallickal <jayamohan.kallickal@emulex.com> Signed-off-by: NJames Bottomley <JBottomley@Parallels.com>
-
由 Jayamohan Kallickal 提交于
Signed-off-by: NJohn Soni Jose <sony.john-n@emulex.com> Signed-off-by: NJayamohan Kallickal <jayamohan.kallickal@emulex.com> Signed-off-by: NJames Bottomley <JBottomley@Parallels.com>
-
由 Jayamohan Kallickal 提交于
The connection is offload to each chute in a round-robin manner if both the chute is loaded with iSCSI protocol Signed-off-by: NJohn Soni Jose <sony.john-n@emulex.com> Signed-off-by: NJayamohan Kallickal <jayamohan.kallickal@emulex.com> Signed-off-by: NJames Bottomley <JBottomley@Parallels.com>
-
由 Jayamohan Kallickal 提交于
Configuration parameters returns the number of connection that can be offloaded one each chute. Signed-off-by: NJohn Soni Jose <sony.john-n@emulex.com> Signed-off-by: NJayamohan Kallickal <jayamohan.kallickal@emulex.com> Signed-off-by: NJames Bottomley <JBottomley@Parallels.com>
-
由 Jayamohan Kallickal 提交于
Configuration parameters return number of CID each chute supports. The WRB_Q is created for the passed CID count. If both the Chute has iSCSI Protocol then WRB_Q creation is in a round robin mechanism. For BE-X family iSCSI protocol is loaded only on single chute. Signed-off-by: NJohn Soni Jose <sony.john-n@emulex.com> Signed-off-by: NJayamohan Kallickal <jayamohan.kallickal@emulex.com> Signed-off-by: NJames Bottomley <JBottomley@Parallels.com>
-
由 Jayamohan Kallickal 提交于
Initialization of SGL and related PAGE posting is to be done for the chute. Based on configuration value of each Chute,SGL initialization and page posting is done. For BE-X family iSCSI protocol is loaded only on single chute Signed-off-by: NJohn Soni Jose <sony.john-n@emulex.com> Signed-off-by: NJayamohan Kallickal <jayamohan.kallickal@emulex.com> Signed-off-by: NJames Bottomley <JBottomley@Parallels.com>
-
由 Jayamohan Kallickal 提交于
Template HDR is created for each chute which has iSCSI Protocol loaded. For BE-X family iSCSI protocol is loaded only on single chute. Signed-off-by: NJohn Soni Jose <sony.john-n@emulex.com> Signed-off-by: NJayamohan Kallickal <jayamohan.kallickal@emulex.com> Signed-off-by: NJames Bottomley <JBottomley@Parallels.com>
-
由 Jayamohan Kallickal 提交于
DEF_Q[HDR/DATA] is created on the chute on which iSCSI Protocol is loaded. When a connection is offloaded, the DEF_Q HDR/Data ID needs to be passed. FW posts ASYNC message received from target on the passed DEF_Q. Connection can be offloaded on any of the chute so DEF_Q is created on each Chute. Change in the ASYNC path initialization based on the configuration parameters returned for each chute. For BE-X family iSCSI protocol is loaded only on single chute. Signed-off-by: NJohn Soni Jose <sony.john-n@emulex.com> Signed-off-by: NJayamohan Kallickal <jayamohan.kallickal@emulex.com> Signed-off-by: NJames Bottomley <JBottomley@Parallels.com>
-
由 Jayamohan Kallickal 提交于
On the adapter iSCSI protocol can be loaded on either one or both the CHUTE.Check on which CHUTE iSCSI Protocol is loaded and get configuration parameters based on which driver initization is done. For BE-X family iSCSI protocol is loaded only on single chute. Signed-off-by: NJohn Soni Jose <sony.john-n@emulex.com> Signed-off-by: NJayamohan Kallickal <jayamohan.kallickal@emulex.com> Signed-off-by: NJames Bottomley <JBottomley@Parallels.com>
-
由 Jayamohan Kallickal 提交于
The timeout set in MBX_CMD is 100sec and the ready bit checking in BMBX mode is done for 4sec. After 4sec the task is scheduled out for 5 secs to avoid kernel soft lockup stack trace. The loop of 4sec ready bit check and then schedule out is done until the following conditon occur - The Ready Bit is Set - The timeout set in MBX_CMD expires Signed-off-by: NJohn Soni Jose <sony.john-n@emulex.com> Signed-off-by: NJayamohan Kallickal <jayamohan.kallickal@emulex.com> Signed-off-by: NJames Bottomley <JBottomley@Parallels.com>
-
由 Jayamohan Kallickal 提交于
The default pdu is a common resource and needs to be protected while manipulating it. Signed-off-by: NMinh Tran <minhduc.tran@emulex.com> Signed-off-by: NJohn Soni Jose <sony.john-n@emulex.com> Signed-off-by: NJayamohan Kallickal <jayamohan.kallickal@emulex.com> Signed-off-by: NJames Bottomley <JBottomley@Parallels.com>
-
由 Jayamohan Kallickal 提交于
Storing MAC ADDR of each function in it's priv structure to avoid issuing MAC_ADDR get IOCTL. Based on a flag set/unset it's decided if MAC_ADDR is stored in priv structure or IOCTL needs to be issued. Signed-off-by: NJohn Soni Jose <sony.john-n@emulex.com> Signed-off-by: NJayamohan Kallickal <jayamohan.kallickal@emulex.com> Signed-off-by: NJames Bottomley <JBottomley@Parallels.com>
-
由 Jayamohan Kallickal 提交于
Allocating memory in the Host which will be used by the TOE functionality during Session Offload. This fix will allow performance improvement as adapter memory contention will be reduced. Signed-off-by: NJohn Soni Jose <sony.john-n@emulex.com> Signed-off-by: NJayamohan Kallickal <jayamohan.kallickal@emulex.com> Signed-off-by: NJames Bottomley <JBottomley@Parallels.com>
-
- 04 7月, 2013 1 次提交
-
-
由 Kees Cook 提交于
For the workqueue creation interfaces that do not expect format strings, make sure they cannot accidently be parsed that way. Additionally, clean up calls made with a single parameter that would be handled as a format string. Many callers are passing potentially dynamic string content, so use "%s" in those cases to avoid any potential accidents. Signed-off-by: NKees Cook <keescook@chromium.org> Signed-off-by: NAndrew Morton <akpm@linux-foundation.org> Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
-
- 02 5月, 2013 11 次提交
-
-
由 Jayamohan Kallickal 提交于
Command Window value from the CQE was used to calculate the max_cmdsn for that session.The command window value extracted for SKH-R adapter was not proper. The value was extracted from BE adapter completion event. Fixed the issue by getting the cmd_wnd value from SKH-R CQE. The exp_cmdsn and max_cmdsn values were not converted to BE format before calling the __iscsi_complete_pdu(). Fixed the issue of converting to BE format. Signed-off-by: NJohn Soni Jose <sony.john-n@emulex.com> Signed-off-by: NJayamohan Kallickal <jayamohan.kallickal@emulex.com> Reviewed-by: NMike Christie <michaelc@cs.wisc.edu> Signed-off-by: NJames Bottomley <JBottomley@Parallels.com>
-
由 Shlomo Pongratz 提交于
The driver creates "NAPI" context per core which is fine, however the above routine declares the ret variable as static! Thus there is only one instance of this variable! When this routine is called from more than one thread of execution, than the result is unpredictable. static unsigned int ret; ..... ret = beiscsi_process_cq(pbe_eq); <--------Another thread can enter here and change "ret". if (ret < budget) { .... } <--------Another thread can enter here and change "ret". return ret; Fix - remove the "static" Signed-off-by: NShlomo Pongratz <shlomop@mellanox.com> Signed-off-by: NJayamohan Kallickal <jayamohan.kallickal@emulex.com> Reviewed-by: NMike Christie <michaelc@cs.wisc.edu> Signed-off-by: NJames Bottomley <JBottomley@Parallels.com>
-
由 Jayamohan Kallickal 提交于
Signed-off-by: NJohn Soni Jose <sony.john-n@emulex.com> Signed-off-by: NJayamohan Kallickal <jayamohan.kallickal@emulex.com> Reviewed-by: NMike Christie <michaelc@cs.wisc.edu> Signed-off-by: NJames Bottomley <JBottomley@Parallels.com>
-
由 Jayamohan Kallickal 提交于
Number of CID assigned to a function from adapter can be dynamic. The CID count for each function was fixed number before. Code Fix done so that adapters with fixed/dynamic CID count will work with the driver. Signed-off-by: NJohn Soni Jose <sony.john-n@emulex.com> Signed-off-by: NJayamohan Kallickal <jayamohan.kallickal@emulex.com> Reviewed-by: NMike Christie <michaelc@cs.wisc.edu> Signed-off-by: NJames Bottomley <JBottomley@Parallels.com>
-
由 Jayamohan Kallickal 提交于
When target send a NOP-IN with valid TTT, driver issues a NOP-OUT and the task was not freed from driver. The task list available for the session used to run out, and as no more task list were available no more iSCSI commands were exchanged on that session. This patches fixed the issue, by calling iscsi_put_task. Signed-off-by: NMinh Tran <minhduc.tran@emulex.com> Signed-off-by: NJohn Soni Jose <sony.john-n@emulex.com> Signed-off-by: NJayamohan Kallickal <jayamohan.kallickal@emulex.com> Reviewed-by: NMike Christie <michaelc@cs.wisc.edu> Signed-off-by: NJames Bottomley <JBottomley@Parallels.com>
-
由 Jayamohan Kallickal 提交于
This patch fixes the displaying of number of active sessions in use. Signed-off-by: NJohn Soni Jose <sony.john-n@emulex.com> Signed-off-by: NJayamohan Kallickal <jayamohan.kallickal@emulex.com> Reviewed-by: NMike Christie <michaelc@cs.wisc.edu> Signed-off-by: NJames Bottomley <JBottomley@Parallels.com>
-
由 Jayamohan Kallickal 提交于
The mgmt_hba_attributes structure declared was not proper and because of that the FW response returned for the MBX_CMD was not matching. This issue went unnoticed as mgmt_hba_attribs structure members were never used in the code path. This fix of displaying the FW version had to change the mgmt_hba_attrib structure also. The latest driver will also work with the older FW as the issue was in the driver declaration. Signed-off-by: NJohn Soni Jose <sony.john-n@emulex.com> Signed-off-by: NJayamohan Kallickal <jayamohan.kallickal@emulex.com> Reviewed-by: NMike Christie <michaelc@cs.wisc.edu> Signed-off-by: NJames Bottomley <JBottomley@Parallels.com>
-
由 Jayamohan Kallickal 提交于
Fixed the code flow based on the MACRO defined to check for adapter. Signed-off-by: NJohn Soni Jose <sony.john-n@emulex.com> Signed-off-by: NJayamohan Kallickal <jayamohan.kallickal@emulex.com> Reviewed-by: NMike Christie <michaelc@cs.wisc.edu> Signed-off-by: NJames Bottomley <JBottomley@Parallels.com>
-
由 Jayamohan Kallickal 提交于
Free CXN specific resource held by driver when login redirection or connection retry happens. Login redirection was failing because WRB/SGL were not allocated from the CID on which doorbell was rung. Fixed the issue raised by MikeC Signed-off-by: NJohn Soni Jose <sony.john-n@emulex.com> Signed-off-by: NJayamohan Kallickal <jayamohan.kallickal@emulex.com> Reviewed-by: NMike Christie <michaelc@cs.wisc.edu> Signed-off-by: NJames Bottomley <JBottomley@Parallels.com>
-
由 Jayamohan Kallickal 提交于
This patch limits the max number of msix vectors to 32. Signed-off-by: NJohn Soni Jose <sony.john-n@emulex.com> Signed-off-by: NJayamohan Kallickal <jayamohan.kallickal@emulex.com> Reviewed-by: NMike Christie <michaelc@cs.wisc.edu> Signed-off-by: NJames Bottomley <JBottomley@Parallels.com>
-
由 Jayamohan Kallickal 提交于
This patch sends uninitialize pattern to FW during driver unload which is expected by FW for cleanup Signed-off-by: NJohn Soni Jose <sony.john-n@emulex.com> Signed-off-by: NJayamohan Kallickal <jayamohan.kallickal@emulex.com> Reviewed-by: NMike Christie <michaelc@cs.wisc.edu> Signed-off-by: NJames Bottomley <JBottomley@Parallels.com>
-
- 04 1月, 2013 1 次提交
-
-
由 Greg Kroah-Hartman 提交于
CONFIG_HOTPLUG is going away as an option. As a result, the __dev* markings need to be removed. This change removes the use of __devinit, __devexit_p, __devinitdata, __devinitconst, and __devexit from these drivers. Based on patches originally written by Bill Pemberton, but redone by me in order to handle some of the coding style issues better, by hand. Cc: Bill Pemberton <wfp5p@virginia.edu> Cc: Adam Radford <linuxraid@lsi.com> Cc: "James E.J. Bottomley" <JBottomley@parallels.com> Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
-
- 27 11月, 2012 1 次提交
-
-
由 John Soni Jose 提交于
Driver periodically checks adapter state,is up fine or not. Based on the value updates the internal structures of driver. Signed-off-by: NJohn Soni Jose <sony.john-n@emulex.com> Signed-off-by: NJayamohan Kallickal <jayamohan.kallickal@emulex.com> Reviewed-by: NMike Christie <michaelc@cs.wisc.edu> Signed-off-by: NJames Bottomley <JBottomley@Parallels.com>
-