| ============================ |
| R E L E A S E N O T E S |
| ============================ |
| |
| Broadcom NetXtreme II iSCSI Driver |
| For Linux |
| |
| Copyright (c) 2006-2011 Broadcom Corporation |
| All rights reserved. |
| |
| Version 2.7.0.4i (Nov 01, 2011) |
| =============================== |
| Enhancements |
| ============ |
| 1. Fixed compilation for SLES11sp2 beta8+ |
| |
| |
| Version 2.7.0.4h (Sep 15, 2011) |
| =============================== |
| Fixes |
| ===== |
| 1. Problem: Cont00056438 - Driver panic running Super Stress w/ |
| Error Recovery |
| Cause: The kernel panic was caused by a race condition between |
| the connection establishment retrival of the |
| ISCSI_PARAM_CONN_ADDRESS parameter and ep_disconnect. |
| Change: Fixed the race condition by employing the bnx2i_resc_lock |
| to lock the bnx2i_conn and bnx2i_ep association. |
| Impact: RHEL6.1/SLES11SP1 and older |
| |
| |
| Version 2.7.0.4g (Aug 22, 2011) |
| =============================== |
| Fixes |
| ===== |
| 1. Problem: Cont00057987 - Can't compile under RHEL6.2 |
| Cause: The param_mask and host_param_mask has been moved to |
| use the attr_is_visible routine |
| Change: Made the proper modification |
| Impact: All |
| |
| |
| Version 2.7.0.4f (Aug 13, 2011) |
| =============================== |
| Fixes |
| ===== |
| 1. Problem: Cont00057829 - iscsi ping timeout and session flapping |
| connected to nx4 target |
| Cause: Every once in a while, this target would send an async NOP-in |
| packet requesting a NOP-out response (TTT != 0xFFFFFFFF). |
| There's a bug in the NOP-out send code where big endian was |
| forced upon the TTT param instead cpu specific. |
| Change: Added a be32_to_cpu conversion in the TTT setting. |
| Impact: All |
| |
| |
| Version 2.7.0.4e (Jul 27, 2011) |
| =============================== |
| Fixes |
| ===== |
| 1. Problem: kernel panic observed when performing ifup/down with I/O under |
| SLES11SP2 beta1 |
| Cause: The newer kernel requires a bnx2i patch which handles the newly |
| defined get_ep_param instead of using the get_conn_param directly |
| Change: Ported over the get_ep_param patch from upstream. This will be |
| employed for newer kernels/distros (RHELS6.2+/SLES11SP2+/Linux |
| kernel 2.6.38+) |
| Impact: All |
| |
| Enhancements |
| ============ |
| 1. Added bnx2i_compat.h to hide all backwards compatibility code. |
| |
| |
| Version 2.7.0.4d (Jul 19, 2011) |
| =============================== |
| |
| Enhancements |
| ============ |
| 1. From linux-iscsi, a problem was found in the rq_affinity code which |
| prevented HT cpu cores from being scheduled for block I/O processing. |
| This severely hampers iSCSI performance if we use the sc->request->cpu |
| for kthread scheduling. The sc->request->cpu will no longer be employed |
| in the kthread scheduling until further notice. |
| |
| 2. Restored the vlan_id from indicate_netevent in accordance to the same |
| change in CNIC. |
| |
| |
| Version 2.7.0.4c (Jul 13, 2011) |
| =============================== |
| |
| Enhancements |
| ============ |
| 1. Removed the vlan_id from indicate_netevent in accordance to the same |
| change in CNIC. |
| |
| |
| Version 2.7.0.4b (Jul 12, 2011) |
| =============================== |
| |
| Enhancements |
| ============ |
| 1. Fixed the illegal use of sc->request->cpu as ported from upstream code. |
| 2. Added support for kernel 3.0.xx compilation. |
| |
| |
| Version 2.7.0.3c (Jun 20, 2011) |
| =============================== |
| |
| Enhancements |
| ============ |
| 1. Modified the init procedure to skip the registration to CNIC if |
| iSCSI is not supported. |
| 2. Augmented the SCSI host template parameters can_queue and cmds_per_lun |
| for performance optimization. |
| 3. Synchronized with several minor fixes from the upstream code. |
| |
| |
| Version 2.7.0.3b (Jun 02, 2011) |
| =============================== |
| |
| Fixes |
| ===== |
| 1. Problem: Cont00051898 - iSCSI Read throughput dips at 512KB with higher |
| qdepths |
| Cont00051896 - iSCSI Read throughput under performs at lower |
| request sizes with higher qdepths |
| Cause: Both problems are caused by a certain deficiency in the existing |
| iSCSI fast path completion code under higher qdepth operations. |
| Change: The iSCSI fast path completion code has been completely retuned |
| to include optimization such as using kthreads and a new event |
| coalesce formula. |
| Impact: All |
| |
| Enhancements |
| ============ |
| 1. Removed 57713 and added 57800/57810/57840_MF/VF support. |
| |
| |
| Version 2.7.0.2b (May 03, 2011) |
| =============================== |
| |
| Fixes |
| ===== |
| 1. Problem: Cont00054496 - Session continuously drops and reconnects |
| with sq_size = 16 against EQL target |
| Cause: The ccell setup in the chip was not at 1/2 of the outstanding |
| task setup. This causes the fw to reuse a ccell which |
| wasn't available. |
| Change: The ccell setup will now be reinitialized accordingly after |
| the sq_size adjustment. |
| Impact: All |
| |
| 2. Problem: Can't compile against upstream server |
| Cause: The parsing of the kernel version string requires a '-' or |
| a '.' as the delimiter which is missing when running any |
| upstream kernel |
| Change: Modified the kernel version parsing string in the Makefile |
| to accommodate for this |
| Impact: All |
| |
| Enhancements |
| ============ |
| 1. Removed obsolete installation instructions from the README. |
| |
| |
| Version 2.7.0.1b (Mar 29, 2011) |
| =============================== |
| |
| Enhancements |
| ============ |
| 1. Added support for E3 (57800, 57810, and 57840) |
| |
| |
| Version 2.6.4.1e (Mar 22, 2011) |
| =============================== |
| |
| Fixes |
| ===== |
| 1. Problem: CQ53773 - bnx2i -WARN CONN_DISCON timeout after setting |
| sq_size to 16 |
| Cause: The chip's sq memory was being overdriven where as there |
| is no mechanism in the code to flow off the SCSI layer |
| from sending more commands down |
| Change: Added a guard to flow off the SCSI layer from queuing more |
| than the chip's sq limit |
| Impact: All |
| |
| Enhancements |
| ============ |
| 1. Added support for XenServer 2.6.32 kernel. |
| |
| |
| Version 2.6.4.1d (Mar 15, 2011) |
| =============================== |
| |
| Fixes |
| ===== |
| 1. Problem: bnx2x panic was observed under various recovery PQA tests |
| Cause: The size of the RQ doorbell was changed from 16 to 64 |
| Change: Fixed the RQ doorbell size in the driver |
| Impact: 5771X |
| |
| |
| Version 2.6.4.1c (Feb 28, 2011) |
| =============================== |
| |
| Enhancements |
| ============ |
| 1. Optimized the iSCSI fast path arming procedure; CQE rescan and |
| skip the 0xFFFF check. |
| |
| 2. Modified the Makefile to filter out unsupported distro compilation |
| |
| |
| Version 2.6.4.1b (Feb 02, 2011) |
| =============================== |
| |
| Enhancements |
| ============ |
| 1. Restored the vlan_id handling for the indicate_netevent call |
| |
| |
| Version 2.6.2.4c (Feb 01, 2011) |
| =============================== |
| |
| Fixes |
| ===== |
| 1. Problem: Cont00052673 - iLab failed test6_14 - delayed iSCSI response |
| Cause: A bug was found in the ep_disconnect routine where the |
| session variable did not get initialized correctly. This |
| bug will cause TCP abortive disconnect to be requested |
| unconditionally. |
| Change: Fixed the initialization bug |
| Impact: All |
| |
| |
| Version 2.6.2.4b (Jan 14, 2011) |
| =============================== |
| |
| Fixes |
| ===== |
| 1. Problem: Cont00052132 - iSCSI has poor write IOPS at 1K block size |
| Cause: A soft lockup for 10s was observed with this and various |
| different I/O size test where as soon as the bh is released, |
| the scsi_next_command routine will trigger and the queue |
| lock will get stuck. |
| Change: - Restored all CQE processing back to the cnic tasklet bh |
| and modified the session lock granularity |
| - Modified the event coalesce algorithm to include the |
| cmd_cmpl_per_work module param |
| Impact: All |
| |
| 2. Problem: Cont00052131 - Cannot establish solid offload connection to |
| Dell MD3220i target from SLES11sp1 (RHELS is okay) |
| Cause: The problem was caused by the deferred CQE processing to |
| workqueue scheme which caused nop timeouts during logouts. |
| Change: The new CQE processing scheme no longer uses workqueue. |
| Impact: All |
| |
| 3. Problem: Cont00051479 - bnx2 unable to compile under RH5.6ss3 |
| Cause: The bnx2i makefile did not accommodate for native RHELS5.6 |
| installations either. |
| Change: Modified the bnx2i Makefile which will now examine the |
| ...kernel.../linux/include/version.h file for the corresponding |
| RHEL version that it is compiling against. |
| Impact: All |
| |
| Enhancements |
| ============ |
| 1. Updated README for Cont00052157 to update the open-iscsi util |
| |
| |
| Version 2.6.2.3g (Jan 04, 2011) |
| =============================== |
| |
| Fixes |
| ===== |
| 1. Problem: Cont00051896 - iSCSI Read throughput underperforms at lower |
| request sizes with higher qdepths for 5771X |
| Cause: The new workqueue CQE processing mechanism was not tuned |
| for this scenario |
| Change: Various modification has been included for performance |
| optimization |
| Impact: All |
| |
| Enhancements |
| ============ |
| 1. Feature: Removed the scsi_flush_workqueue call and use a hba workqueue |
| array instead. This eliminates the potential libiscsi softlock |
| that one connection is performing scsi cleanup while the other |
| is undergoing scsi_flush_workqueue. |
| Impact: All |
| |
| |
| Version 2.6.2.3f (Dec 20, 2010) |
| =============================== |
| |
| Fixes |
| ===== |
| 1. Problem: Cont00051815 - kernel BUG - logging into EMC NX4 |
| Cause: This target uncover a timing bug in the CQE processing call |
| in the mtask transmission. The nopin response got |
| processed before the nopout request was returned to the |
| stack. This causes the nopout request to timeout all the |
| time as the nopin responses would never get processed. |
| Change: Removed the CQE processing in mtask requests. This is not |
| necessary. |
| Impact: All |
| |
| |
| Version 2.6.2.3e (Dec 17, 2010) |
| =============================== |
| |
| Fixes |
| ===== |
| 1. Problem: Cont00051647 - Unable to logout of Dell MD3220i target for |
| RHELS6.0 |
| Cause: Upon logout or shutdown, a scsi sync cache cmd will get |
| transmitted while the scsi worker is being blocked. Since |
| this is a fastpath cmd, the response was queued to the |
| scsi scsi workqueue which resulted in a lost response. |
| When this happens, the sync cache logic in the kernel will |
| block forever. |
| Change: Upon receiving a scsi sync cache cmd, the cqe processing will |
| switch to direct processing instead of deferring to the wq |
| Impact: All |
| |
| Enhancements |
| ============ |
| 1. Feature: No longer have to flush the entire shost workqueue for every |
| connection termination. In RHELS6.0, the cancel_work_sync function |
| will remove the connection's single entry to the shost's workqueue. |
| Impact: All |
| |
| 2. Feature: Added retry logic in the send nl mesg routine for robustness |
| Impact: All |
| |
| |
| Version 2.6.2.3d (Dec 15, 2010) |
| =============================== |
| |
| Fixes |
| ===== |
| 1. Problem: Cont00051625 - call trace while ifdown with traffic |
| bnx2i_conn_worker |
| Cause: Under certain ifdown cases, the bnx2i_ep and the bnx2i_conn are |
| not associated when going through chip_cleanup. The previous fix |
| did not take this into consideration |
| Change: Moved the disabling of the workqueue to hw_ep_disconnect under |
| bnx2i_conn validation check |
| Impact: All |
| |
| |
| Version 2.6.2.3c (Dec 14, 2010) |
| =============================== |
| |
| Fixes |
| ===== |
| 1. Problem: Cont00051625 - call trace while ifdown with traffic |
| bnx2i_conn_worker |
| Cause: During ifdown, the bnx2i_stop code will clean up all active |
| connections from the chip. However, because of the new workqueue |
| data processing architecture, the workqueues for the already |
| cleaned connections were still being called. This has created |
| a window of opportunity for the libiscsi2 layer to get into a |
| continuous locking/unlocking via the task_xmit path. |
| Change: Added the disabling of the workqueue for every active iSCSI conn |
| before chip cleanup. |
| Impact: All |
| |
| 2. Problem: Cont00051647 - Unable to logout of Dell MD3220i target |
| Cause: The scsi_flush_work call in the ep_disconnect was waiting |
| indefinitely for outstanding nopout cmd which was never sent during |
| the SCSI sync cache phase |
| Change: Removed the scsi_flush_work call until conn_destroy to align with |
| internal scsi state. Note that all outstanding scsi work must be |
| flushed before the bnx2i_conn gets destroyed. |
| Impact: All |
| |
| |
| Version 2.6.2.3b (Dec 07, 2010) |
| =============================== |
| |
| Fixes |
| ===== |
| 1. Problem: Cont00051499 - Call trace seen with bnx2i_process_new_cqes |
| Cause: For targets which employs ip redirect, a remote abort/close |
| event would occur. However, these were not being handled |
| correctly under the new cqe processing architecture |
| Change: Added session recovery workqueue to defer all remote abort/close |
| requests |
| Impact: All |
| |
| |
| Version 2.6.2.3a (Dec 06, 2010) |
| =============================== |
| |
| Fixes |
| ===== |
| 1. Problem: Cont00050655 - Low read/write IOPS on linux configuration |
| 57711 |
| Cause: The chip was being underutilized due to the mutual |
| starvation in the bottomhalf tasklet between the fastpath's |
| EQ->CQE handling and the SCSI ML's queue command requests |
| Change: Alleviate the processing time of the EQ->CQE by creating |
| a workqueue and also added processing of such in the |
| queuecommand's bh. |
| Impact: All |
| |
| 2. Problem: Cont00051427 - Session recovery seen after stopping I/O |
| traffic on Lefthand P4300 target |
| Cause: The nopout's reserved field was not being initialized to zero |
| before being reused. |
| Change: Zero out the entire nopout wqe before sending to fw. |
| Impact: All |
| |
| |
| Enhancements |
| ============ |
| 1. Feature: Updated the README to remove the jumbo MTU limitation caveat |
| Impact: All |
| |
| |
| Version 2.6.2.2b (Nov 09, 2010) |
| =============================== |
| |
| Fixes |
| ===== |
| 1. Problem: Cont00050725 - RH6.0:iSCSI HBA Linux: bnx2i WARN-CONN_DISCON |
| timed out message observed when restarting iSCSI service |
| Cause: A chip panic was observed as CFC delete was initiated without |
| SRC delete being executed first. |
| Change: There's a path where if the connect response exceeded the |
| connection timeout, CFC delete will occur without first |
| executing SRC delete. |
| Impact: 5771X |
| |
| Enhancements |
| ============ |
| 1. Feature: Added jumbo MTU support for iSCSI offload connections |
| Change: For cases where the shost is not provided, jumbo MTU is |
| not supported. |
| Impact: All |
| |
| |
| Version 2.6.2.2a (Oct 28, 2010) |
| =============================== |
| |
| Enhancements |
| ============ |
| 1. Added send text pdu support for iSCSI send-target discovery via the |
| offload path |
| |
| 2. Added compilation support for RHELS5.6-alpha |
| |
| 3. Reduce the hard-coded 20s delay wait time to 1s for NETDEV_GOING_DOWN |
| operations |
| |
| 4. Changed the ulp_ops->iscsi_nl_send_msg() to prevent a circular lock |
| dependency issue |
| |
| |
| Version 2.6.2.1a (Oct 11, 2010) |
| =============================== |
| |
| Fixes |
| ===== |
| 1. Problem: Cont00044011 - Linux iSCSI: Cannot obtain max number of sess |
| when changing sq_size to 16 (5708) |
| Cause: - Task allocation unit were not correctly allocated |
| - Offloaded PG were being leaked |
| - 5706/08 firmware's context allocation were not correct |
| Change: Fixed all 3 desribed issues above. This also requires |
| an update of the 5706/08 firmware which contains this fix. |
| Impact: 570X |
| |
| 2. Problem: Cont00049584 - System panic with this message "mutex_lock" |
| Cause: The single threaded iSCSI daemon has prevented the NETDEV_UNREG |
| path to invalidate the host when it is too busy trying to |
| perform session recovery. |
| Change: The fix is separated in both the open-iscsi utility and bnx2i. |
| The fix in bnx2i is to combat netlink messages from being lost. |
| The fix in the open-iscsi utility is to fix the single threaded |
| scheduler which flushed the INVALID_HOST path. The patch has |
| already been submitted to RHELS for the next release of 5.6/6.0. |
| Impact: 5771X |
| |
| 3. Problem: Cont00049609 - Running iLab automated iSCSI test 6.1 on RHELS6.0 |
| intermittently caused kernel panic |
| Cause: A bug in the TMF LUN reset command generation code in bnx2i has |
| corrupted the LUN number which the target will reject the |
| request. This has led to libiscsi to dereference an incomplete |
| TMF scsi_cmd; hence the kernel panic. |
| Change: Fixed the TMF LUN reset generation in bnx2i. |
| Impact: All |
| |
| |
| Version 2.1.3a (Sep 15, 2010) |
| ============================= |
| |
| Fixes |
| ===== |
| 1. Problem: Cont00049899 - RHELS5.5 iSCSI boot thru offload path fails in |
| IPv6 mode |
| Cause: The local IPv6 address being transferred to the iSCSI daemon |
| is corrupted |
| Change: Fixed the proper formatting of the ipv6 address for the |
| HOST_PARAM_IPADDRESS retrieval |
| Impact: All (RHELS5.4/5.5 and IPv6 only) |
| |
| |
| Version 2.1.2z (Sep 07, 2010) |
| ============================= |
| |
| Fixes |
| ===== |
| 1. Problem: Cont00049798 - System unresponsiveness during cable pull test |
| Cause: This is newly introduced by the previous code. The root cause |
| of the problem relates to how libiscsi immediately initiates |
| another nopout request when the previous one fails to queue |
| Change: Allow nopout requests to return success as normal. The |
| associated task will get freed upon nopout timeout. |
| Impact: All |
| |
| |
| Version 2.1.2y (Sept 02, 2010) |
| ============================== |
| |
| Fixes |
| ===== |
| 1. Problem: Cont00049634 - Linux iSCSI: MC assert on idle port while |
| running ifup/down with 128 sessions |
| 2. Problem: Cont00049667 - Linux iSCSI: bnx2x_panic_dump while running |
| adapter selftest with active sessions connected |
| ([bnx2x_stats_update:1070(eth6)]storm stats were not updated |
| for 3 times) |
| 3. Problem: Cont00049477 - Linux iSCSI: bnx2x_panic_dump while running |
| adapter selftest with active sessions connected |
| (bnx2x_cnic_handle_cfc_del:4443) |
| 4. Problem: Cont00049584 - LinuxiSCSI: System panic with this message |
| "mutex_lock+0x2b/0x50" |
| Cause: Several issue in connection cleanup and bnx2i_stop() code and |
| bnx2i was not uploading connection if it does not receives |
| TCP CONN_DISCON completion. also bnx2i_ep_connect() was not |
| handling certain error cases well which was resulting resource |
| leak and also messing up cid and l5_cid handling mapping |
| Change: |
| * Moved 'hba->adapter_state' flags bit clear to after connection |
| cleanup wait is over. This allows ep_disconnect() code to run |
| normally and upload the connection properly |
| * Added code to wait for pending connection offload and upload |
| requests to complete before proceeding to chip clean-up. iscsid |
| and libiscsi will not cleanup these ep's when session_drop() is |
| called because these ep's are not yet bound to any iscsi sessions |
| * Forcefully terminate all in progress connection recovery at the |
| earliest, either in bind(), send_pdu(LOGIN), or conn_start(). |
| This will avoid iscsid waiting for 10-15-sec waiting for login |
| response and then proceeding with connection cleanup. This fix |
| enables iscsid to start connection cleanup process immediately |
| * There are known certain target TCP stack behavior which could |
| lead to missing CONN_DISCONNECT request timeout eventhough |
| firmware has terminated the tcp connection properly. Firmware team |
| has confirmed it is safe to terminate and CFC_DEL these connections |
| * Fixed several issues in error handling code in bnx2i_ep_connect() |
| which could lead to resource leak and cid and iscsi cid mangling |
| |
| Impact: 5771X |
| |
| Enhancements |
| ============ |
| None |
| |
| |
| Version 2.1.2x (Aug 26, 2010) |
| ============================== |
| |
| Fixes |
| ===== |
| 1. Problem: Cont00049634 - MC assert on idle port while running ifup/down |
| Cause: The chip panic was caused by performing a CFC deletion |
| operation to a connection that is not idle. The tx/rx pipe |
| in the driver were still trying to access the chip. |
| Change: The tx/rx pipe is now suspended before attempting the |
| chip cleanup |
| Impact: 5771X |
| |
| |
| Version 2.1.2w (Aug 25, 2010) |
| ============================== |
| |
| Fixes |
| ===== |
| 1. Problem: Cont00049584 - System panic with this message "mutex_lock" |
| Cause: The single threaded iSCSI daemon has prevented the NETDEV_UNREG |
| path to invalidate the host when it is too busy trying to |
| perform session recovery. |
| Change: Instead of changing the iSCSI initiator code, the NETDEV msg |
| handling path was modified to prevent the iSCSI daemon from |
| entering session recovery in the NETDEV_UNREG path. |
| Impact: 5771X |
| |
| 2. Problem: Cont00049477 - bnx2x_panic_dump while running adapter selftest |
| Cause: Another CFC delete chip panic was observed when CONN_DISCONN |
| timeout (option2 disconnect timed out) happens. The driver |
| should not allow the associated l5_cid from being freed which |
| will prevent l5_cid reuse. |
| Change: Block the freeing of the associated l5_cid |
| Impact: ALL |
| |
| |
| Version 2.1.2v (Aug 18, 2010) |
| ============================== |
| |
| Fixes |
| ===== |
| 1. Problem: Cont00049477 - bnx2x_panic_dump while running adapter selftest |
| Cause: Its a cleanup issue exposed by uIP taking too long to recover |
| the session. This has led to the driver initiating the chip |
| cleanup process while the iSCSI daemon is staggering its |
| connect/disconnect request. |
| Change: Disallow ep_connect request while performing chip cleanup |
| Impact: ALL |
| |
| |
| Version 2.1.2u (Aug 11, 2010) |
| ============================== |
| |
| Fixes |
| ===== |
| 1. Problem: Cont00049283 - cannot login thru offload path with vlan |
| Cause: The hardware net device identifier should be used instead of |
| the vlan identifier |
| Change: Since this is the intended behavior, only the README has been |
| updated with this info |
| Impact: ALL |
| |
| Enhancements |
| ============ |
| 1. Ignore all netevents associated with VLAN. Only process netevents from |
| the non-VLAN net device |
| |
| |
| Version 2.1.2t (Aug 08, 2010) |
| ============================== |
| |
| Fixes |
| ===== |
| 1. Problem: Cont00049208 - Error when compile bnx2i under IA64 |
| Cause: The IA64 architecture does not support cflags of -mhard-float |
| Change: Since bnx2i does not use any floating point components, it |
| has been decided to remove both -ffast-math and -mhard-float |
| from the Makefile |
| Impact: ALL |
| |
| 2. Problem: Cont00049245 - Session recovery timeout kernel panic |
| Cause: iscsi_conn was destroyed asychronously after long selftest |
| Change: Added guard against pointer dereferencing for CONN_DISCONN |
| conditions |
| Impact: ALL |
| |
| 3. Problem: Cont00049247 - Kernel panic seen after selftest a few times |
| Cause: cnic csk was nullified upon chip cleanup from bnx2i stop. |
| At the same time, a new instance of iscsid tries to disconnect |
| the same bnx2i endpoint but now with the cnic csk being NULL. |
| Change: Added guard against double calling of hw_ep_disconnect via |
| ep->state being EP_STATE_IDLE |
| Impact: ALL |
| |
| 4. Problem: Cont00049182 - IPv6 redirection does not work on Equalogic |
| target |
| Cause: With the new ipv6 enabled uIP, it uncovered a bug in the |
| ep_poll routine where bnx2i is providing an erroneous timeout |
| error to the iSCSI daemon. |
| Change: Fixed the bug in the ep_poll routine |
| Impact: ALL |
| |
| |
| Version 2.1.2s (Aug 03, 2010) |
| ============================== |
| |
| Fixes |
| ===== |
| 1. Problem: Cont00049161 - Kernel panic occurs running iLAB test6_1 |
| Cause: The kernel panic was caused by an synchronization issue in the |
| iSCSI stack when a fail TMF lun reset request was introduced |
| by a bug in our driver. |
| Change: Fix the lun reset TMF request endian bug where the lun field |
| was not correct |
| Impact: ALL |
| |
| |
| Version 2.1.2r (Aug 02, 2010) |
| ============================== |
| |
| Fixes |
| ===== |
| 1. Problem: Cont00049047 - EP disconnect timeout - chip panic |
| Cause: Chip panic occurred while trying to force CFC delete upon |
| cm_abort/close (CONN_DISCONN) timeout |
| Change: It is adviced to not separate the conn destroy procedure of |
| SRC_DELETE, terminate offload and CFC_DELETE. So upon a |
| CONN_DISCONN timeout situation, no CFC_DELETE will be issued. |
| Impact: 5771X |
| |
| Enhancements |
| ============ |
| 1. Added temporary workaround for the HOST_IPADDRESS parameter for ipv6 |
| |
| |
| Version 2.1.2q (Jul 30, 2010) |
| ============================== |
| |
| Fixes |
| ===== |
| 1. Problem: Cont00048941 - iscsi2_conn_failure kernel panic due to target |
| restart |
| Cause: Kernel panic occurred in iscsi2_conn_failure dereferencing |
| a NULL iscsi_conn pointer. The asynchronous tcp FIN/RST that |
| gets received might have been blocked while the iscsi_conn |
| is being nullified. |
| Change: Added check against iscsi_conn/sess dereferencing for |
| asynchronous response such as remote abort/close scenarios |
| Impact: All |
| |
| 2. Problem: Cont00049068 - Sessions drop and recovery against Lefthand |
| Networks P4300 target |
| Cause: The session recovery was caused by the LUN reset timeouts. |
| Only abort_task TMF is supported. |
| Change: Added support for other TMF modes like LUN reset. |
| Added protocol violation fix for NOP-Out responses to |
| unsolicited NOP-Ins |
| Impact: All |
| |
| |
| Version 2.1.2p (Jul 29, 2010) |
| ============================== |
| |
| Fixes |
| ===== |
| 1. Problem: Cont00049013 - bnx2i_tear_down_conn kernel panic |
| Cause: Chip panic occurred due to CID reuse without being |
| initialized |
| Change: Added chip cleanup procedure in the bnx2i module |
| unloading code path |
| Impact: 5771X |
| |
| |
| Version 2.1.2o (Jul 28, 2010) |
| ============================== |
| |
| Fixes |
| ===== |
| 1. Problem: Cont00049044 - bnx2i driver version is not correct |
| Cause: Version didn't get bumped |
| Change: Updated version string |
| Impact: ALL |
| |
| 2. Problem: Cont00049047 - EP disconnect timeout |
| Cause: CONN_DISCONN was causing a double CFC delete request which |
| ultimately caused the chip to panic |
| Change: Fixed the double CFC delete request handling |
| Impact: 5771X |
| |
| 3. Problem: Cont00049857 - System lock up when connect to lefthand target |
| Cause: Two sess spinlocks were being requested in the NOP-Out |
| local completion path |
| Change: Fixed the spinlock request in the handling routine |
| Impact: All |
| |
| |
| Version 2.1.2n (Jul 24, 2010) |
| ============================== |
| |
| Fixes |
| ===== |
| 1. Problem: Cont00048998 - Compilation error found with sles11sp1x86 |
| Cause: The ARCH variable during the compilation was overwritten |
| with i686 which failed recordmcount.pl |
| Change: Removed the ARCH variable in the Makefile as it is not used |
| Impact: ALL |
| |
| 2. Problem: Cont00047900 - bnx2x panic observed after booting via iSCSI |
| boot |
| Cause: The previous fix had a bug where the IP ADDRESS was wrong |
| Change: Fixed the IP ADDRESS bug in the HOST_PARAM |
| Impact: ALL |
| |
| |
| Version 2.1.2m (Jul 20, 2010) |
| ============================== |
| |
| Fixes |
| ===== |
| 1. Problem: Cont00047900 - bnx2x panic observed after booting via iSCSI |
| boot |
| Cause: The RQEs were not being freed for unsolicited NOP-Ins |
| Change: Fixed 2 bugs in the NOP-In handling. |
| Modified the conn_bind routine to detect and perform a chip |
| cleanup on the stale endpoints. |
| Added temporary workaround for the HOST_IPADDRESS parameter |
| Impact: ALL |
| |
| |
| Version 2.1.2l (Jul 15, 2010) |
| ============================== |
| |
| Fixes |
| ===== |
| 1. Problem: Cont00041327 - Need Ability to Identify Adapter iSCSI Offload |
| Capabilities |
| Cause: This CQ was resolved in t5.2 but did not work on distro that |
| uses a single transport name such as SLES11 |
| Change: Modified the driver to examine the iSCSI offload license upon |
| bnx2i_start. This will prevent the adapter from |
| appearing in the /sys/class/iscsi_host/hostN entry. |
| Impact: ALL |
| |
| Enhancements |
| ============ |
| 1. Fixed potential kernel panic caused by stale pointer dereferencing |
| from elements in the ofld_list whenever cnic fails the ofld request |
| |
| 2. Modified ep_connect/ep_disconnect to guard against asynchronous calls |
| from the iSCSI daemon during NETDEV_GOING_DOWN->NETDEV_DOWN |
| |
| |
| Version 2.1.2k (Jun 30, 2010) |
| ============================== |
| |
| Enhancements |
| ============ |
| 1. Added ep_active_list to replace active_sess code |
| 2. Optimized the HOST_PARAM_IP_ADDRESS retrieval code to use |
| ep_active_list |
| 3. Added module param ooo_enable to enable the TCP out-of-order feature |
| for iSCSI offload (default = 1) |
| 4. Restored the disconnect timeout for 5771X back to 20s as CONN_DISCON |
| timeouts were observed |
| |
| |
| Version 2.1.2j (Jun 18, 2010) |
| ============================== |
| |
| Fixes |
| ===== |
| 1. Problem: Cont00046648 - CID Leakage occurs while running iLab test 5.12 |
| (connection closure scenarios) rework |
| Cause: The new bnx2x driver 1.60.24 has changed the max FIN |
| disconnect timeout down to 6s instead |
| Change: Modified the disconnect timeout for 5771X back to 10s |
| Also modified the clean up procedure for the case where the |
| iSCSI daemon is slow or not operational for bnx2i_stop |
| Impact: ALL |
| |
| 2. Problem: Cont00044011 - Cannot obtain max number of sessions when |
| changing sq_size to 16 for 5708 |
| Cause: The driver has capped the number of max commands to sq_size/2 |
| unnecessary |
| Change: Restored the cmds_max = sq_size instead of num_ccells |
| Impact: ALL |
| |
| |
| Version 2.1.2i (Jun 10, 2010) |
| ============================== |
| |
| Fixes |
| ===== |
| 1. Problem: Cont00046648 - CID Leakage occurs while running iLab test 5.12 |
| (connection closure scenarios) |
| Cause: Still occurred with the piggybacked FIN on logout responses |
| Change: Extended the disconnect timeout for 5771X to 20s to accommodate |
| for the worse case firmware disconnect timeout of 16s |
| Impact: 5771X |
| |
| |
| Enhancements |
| ============ |
| 1. Correspondingly extended the per connection clean up timeout to 20s |
| |
| |
| Version 2.1.2h (Jun 04, 2010) |
| ============================== |
| |
| Fixes |
| ===== |
| 1. Problem: Cont00047973 - 57711E: Kernel panic when running iLab automated |
| test 6.14 (iProt's delayed logout response) |
| Cause: The open-iscsi stack's 15s logout timeout has expired and a |
| disconnect request was forced prior to the delayed logout |
| response is received. This has created a stale pointer |
| deferencing in the libiscsi stack |
| Change: Modified the disconnect path to handle logout req/resp |
| accordingly. Also suspend the rx endpoint for disconnect |
| timeout conditions to prevent stale pointer dereferencing in |
| libiscsi |
| Impact: 5771X |
| |
| |
| 2. Problem: Cont00046648 - CID Leakage occurs while running iLab test 5.12 |
| (connection closure scenarios) |
| Cause: Reset completion was received instead of close complete kcqe |
| while the driver is engaged in connection close request |
| Change: Modified various graceful/abortive local/remote connection |
| termination code path for both 1g/10g |
| This works in conjunction to the new cnic changes |
| Impact: All |
| |
| |
| Enhancements |
| ============ |
| 1. Added HOST_IP_ADDRESS in sysfs |
| |
| |
| Version 2.1.2g (May 26, 2010) |
| ============================== |
| |
| Fixes |
| ===== |
| 1. Problem: Cont00047794 - Linux-iscsi: Everest always terminates the |
| iSCSI connection (logout) with a reset packet |
| Cause: The code to decide to perform a graceful vs abortive |
| termination did not take into account this situation where |
| a remote close indication happened prior to the locally |
| initiated termination sequence |
| Change: Modified the code which decides to perform a graceful vs |
| abortive termination to account for this scenario |
| Impact: All |
| |
| 2. Problem: TCP timestamp module param option was removed |
| Cause: This option was added from T5.2 and have not been submitted |
| to upstream bnx2i |
| Change: The option has been added |
| Impact: All |
| |
| |
| Enhancements |
| ============ |
| 1. Updated README |
| |
| 2. Added tcp_buf_size module param to control TCP Window size setting |
| |
| |
| Version 2.1.2f (May 24, 2010) |
| ============================== |
| |
| Fixes |
| ===== |
| 1. Problem: Cont00047901 - Linux-iscsi: Unable to initiate iSCSI connection |
| with 57712 |
| Cause: There was a bug in the 57712 identifier code |
| Change: Added fix in the 57712 identifier code |
| Impact: 57712, 57712E |
| |
| |
| Version 2.1.2e (May 21, 2010) |
| ============================== |
| |
| Fixes |
| ===== |
| 1. Problem: Cont00047527 - Linux-iscsi: Kernel panic after manually killing |
| iscsid process and removing bnx2i/cnic modules |
| Cause: The problem was caused by a race condition where the iscsid |
| daemon tries to access the sysfs host entries while bnx2i |
| is undergoing rmmod. |
| Change: Return a length of 0 if the bnx2i hba has been freed or when |
| it has already been unregistered from cnic |
| Impact: all chipsets |
| |
| 2. Problem: Cont00047734 - Linux-iscsi: Kernel panic after rebooting with |
| active iSCSI sessions |
| Cause: The problem was caused by the stop code where the adapter |
| state was set to down before the iSCSI daemon has a chance to |
| perform the cleanup. |
| Change: Added proper cleanup code in the stop routine |
| Impact: all chipsets |
| |
| Enhancements |
| ============ |
| 1. Added sysfs entry last_active_tcp_port to display the source TCP port |
| info of the last iSCSI offload connection used. This is a request from |
| iLab to test OOO. |
| |
| |
| Version 2.1.2d (May 03, 2010) |
| ============================== |
| |
| Enhancements |
| ============ |
| 1. Added support for 57712 |
| |
| |
| Version 2.1.2c (Apr 30, 2010) |
| ============================== |
| |
| Enhancements |
| ============ |
| 1. Added the feature to return -EBUSY if the offload connection failure |
| was due to the 2s CFC WAIT for iscsid. |
| |
| |
| Version 2.1.2b (Apr 22, 2010) |
| ============================= |
| |
| Enhancements |
| ============ |
| 1. Migrated to use the new uIO method for iSCSI offload connections. |
| 2. Removed the obsolete install_usr option (for bnx2id) |
| |
| |
| Version 1.8.13d (Apr 12, 2010) |
| ============================= |
| |
| Fixes |
| ===== |
| 1. Problem: Cont00047101 - Linux-iscsi: Switching from offload to non-offload |
| with OOB iscsi solution on Red hat 5.5 requires extra steps |
| Cause: same root cause as CQ44503, makefile defines macro to use which |
| forces driver to use scsi_transport_iscsi2 for RHEL5.4 only. |
| Change: Update makefile to define __RHEL54_DUAL_ISCSI_STACK__ for both |
| RHEL5.4 and RHEL5.5 |
| Impact: Only RHEL5.5 distro, all chipsets |
| |
| Enhancements |
| ============ |
| None |
| |
| |
| Version 1.8.13c (Mar 19, 2010) |
| ============================= |
| |
| Fixes |
| ===== |
| 1. Problem: Cont00046658 - CID leakage occurs (submit GRC dump message from |
| bnx2i driver) while running iLab automated test 1.1 |
| (login/logout) |
| Cause: 5770x firmware design is changed not to process and complete |
| TCP_CLOSE RAMROD request after any TCP event (FIN/RST received, |
| TCP protocol error detected, etc') occured on the connection |
| Change: This is a big change and we feel there is a finite time delay |
| (big enough) between iscsi logout w/o piggybacked FIN received |
| and by the time iscsid issue ep_disconnect() during which target |
| TCP stack can issue FIN or the RST. By design bnx2i driver issues |
| TCP_CLOSE on a gracefully terminated iscsi session (using iscsi |
| logout process) and for all error conditions it will issue |
| TCP_ABORT request. So the current firmware change cause a big |
| challenge which cannot be mitigated in the driver. Only way bnx2i |
| driver can handle is to issue TCP_ABORT for all connection termination |
| process whether it is graceful or abortive cleanup. This release is |
| just a partial shutdown which will sucessfully handle iscsi logout |
| pdu with piggybacked FIN. Further analysis and discussions is on |
| going with the firmware team. |
| Impact: 5771x chipset. Please refer to 'Change' section for further limitation |
| and follow-up issues to be addressed with the firmware team. |
| |
| 2. Problem: Cont00046691 - Linuxiscsi: SUT became unstable and ask to run grcdump |
| after login/logout |
| Cause: Duplicate of Cont00046658 |
| Change: Please refer to Cont00046658 for details |
| Impact: 5771x chipset |
| |
| Enhancements |
| ============ |
| None |
| |
| |
| Version 1.8.13b (Feb 04, 2010) |
| ============================= |
| |
| Fixes |
| ===== |
| 1. Problem: 5771x doorbell page size reduced from 4096B to 128B causing |
| iSCSI offload to break |
| Cause: iSCSI doorbell calculation has to be fixed to accomodate this |
| HSI change |
| Change: Changed doorbell mapping code to match the HSI |
| Impact: 5771x chipset |
| |
| Enhancements |
| ============ |
| Add 57712 PCI ID support |
| |
| |
| Version 1.8.13a (Jan 20, 2010) |
| ============================= |
| |
| Fixes |
| ===== |
| 1. Problem: 5771x doorbell page size reduced from 4096B to 128B causing |
| iSCSI offload to break |
| Cause: iSCSI doorbell calculation has to be fixed to accomodate this |
| HSI change |
| Change: Changed doorbell mapping code to match the HSI |
| Impact: 5771x chipset |
| |
| Enhancements |
| ============ |
| None |
| |
| |
| Version 1.8.12f (Jan 19, 2010) |
| ============================= |
| |
| Fixes |
| ===== |
| 1. Problem: Cont00044986 - LinuxiSCSI:Unable to get more than a few disks |
| when i login to Netapp setup with maxlun disks |
| Cause: In certain configurations kernel is assigning 'shost->max_lun' |
| a value of '8'. In most configurations is correctly assigned |
| '512' |
| Change: Explicitly initialized shost->max_lun to '512' when a new |
| scsi host is allocated and initialized |
| Impact: All chips, RHEL5.4 Linux distro |
| |
| Enhancements |
| ============ |
| None |
| |
| |
| Version 1.8.12e (Dec 11, 2009) |
| ============================= |
| |
| Fixes |
| ===== |
| None |
| |
| Enhancements |
| ============ |
| Per OEM request made system log entry more administrator friendly |
| e.g. Changed |
| "bnx2i: hba ffff810089abdcef does not support iscsi" |
| to |
| "bnx2i: dev eth0 does not support iscsi" |
| |
| README.TXT was updated to reflect this change. |
| |
| |
| Version 1.8.12d (Dec 09, 2009) |
| ============================= |
| |
| Fixes |
| ===== |
| 1. Problem: Cont00044503: RHEL 5.4 x86_64 with Multiple iSCSI Errors |
| Booting the Kernel |
| Cause: out-of-tree bnx2i was including references to symbols in |
| scsi_transport_iscsi1 where as iscsi_tcp was referencing the |
| ones in scsi_transport_iscsi2. This conflict caused software |
| and offload iscsi not to coexist |
| Change: Modified bnx2i driver to work with scsi_transport_iscsi2. |
| Update session/connection/endpoint setup/teardown code path |
| to account for new data structure objects created in libiscsi2 |
| which were not present in libiscsi1 |
| Impact: All chips, RHEL5.4 Linux distro |
| |
| Enhancements |
| ============ |
| None |
| |
| |
| Version 1.8.12c (Dec 01, 2009) |
| ============================= |
| |
| Fixes |
| ===== |
| 1. Problem: Cont00041327: Linux: Need Ability to Identify Adapter |
| iSCSI Offload Capabilities |
| Cause: OEM's requested this feature because the driver was |
| registering all NX2 devices with the iscsi transport layer. |
| Change: Modified bnx2i to register only the licensed devices with |
| iscsi transport layer. This will avoid the need for mechanism |
| to identify licensed and unlicensed NX2 devices as only the |
| licensed devices will appear in '/sys/class/iscsi_transport' |
| directory. |
| Impact: All chips, All Linux distro |
| |
| Enhancements |
| ============ |
| None |
| |
| |
| Version 1.8.12b (Nov 09, 2009) |
| ============================= |
| |
| Fixes |
| ===== |
| 1. Problem: Async logout with Equallogic target results in |
| "CONN_DISCON" and "CONN_CLEANUP" timeout messages |
| Cause: This issue was initially reported by Vmware against |
| ESX4.5 iSCSI inbox driver. This same issue was reproduced |
| in Linux as well. Driver was returning DID_NO_CONNECT when |
| the session is being logging out which caused a ton of debug |
| log from SCSI-ML. While running heavy I/O on 12 session per |
| port and simultaneously issue async message to logout these |
| sessions caused a huge log spew which caused 570x device |
| interrupt to be delayed in order of 10x seconds. |
| Change: Return DID_HOST_BUSY while session is being logged out and |
| till either session recovers or recovery times out. Once |
| session recovery timeout is hit driver will return |
| DID_NO_CONNECT |
| Impact: All chips, All Linux distro |
| |
| Enhancements |
| ============ |
| None |
| |
| |
| Version 1.8.12a (Oct 22, 2009) |
| ============================= |
| |
| Fixes |
| ===== |
| None |
| |
| Enhancements |
| ============ |
| Repacking 1.8.9u as baseline for T5.2 release |
| |
| |
| Version 1.8.9u (Oct 16, 2009) |
| ============================= |
| |
| Fixes |
| ===== |
| 1. Problem: Cont00044141 - Linux iSCSI: Kernel panic while performing |
| cable pull test with MPIO on RHEL5.4 (swiotlb_map_sg+0x2f/0x14a) |
| Cause: swiotlb_map_sg() crash was caused because SCSI-ML queued a |
| command with sg_length = 0, sg_count = 1 and sg table != NULL. |
| Driver was only looking at last 2 parameters to call pci_map_sg() |
| or not. Follow on issue was cause by open-iscsi daemon changes, |
| ep_disconnect() was called without calling stop_conn(). |
| Change: Fixed driver to consider 'sg_length' before mapping SG buffers & |
| also shost workqueue is flushed in ep_disconnect() if it is not |
| already done so. |
| Impact: All chips on RHEL5.4 |
| |
| Enhancements |
| ============ |
| None |
| |
| |
| Version 1.8.9t (Oct 08, 2009) |
| ============================= |
| |
| Fixes |
| ===== |
| None |
| |
| Enhancements |
| ============ |
| Special sections were added to list know issues and workarounds related |
| to out-of-tree bnx2i and software iscsi coexistence issue in RHEL5.4 |
| |
| |
| Version 1.8.9s (Sept 30, 2009) |
| ============================= |
| |
| Fixes |
| ===== |
| 1. Problem: Cont00043901 - Linux iSCSI: RHEL5.4 OOB - Kernel panic |
| during logout with iscsi-initiator-utils-6.2.0.871-0.10c |
| Cause: Latest open-iscsi changed graceful session tear down sequence. |
| ep_disconnect() is called before stop_conn() and this caused |
| NULL pointer access while dereferencing conn->ep |
| Change: check for 'conn->ep' validity before dereferencing |
| Impact: All chipsets, RHEL5.4 only |
| |
| 2. Problem: Cont00043896 - Linux iSCSI: System crash with |
| iscsi-initiator-utils-6.2.0.871-0.10c |
| Cause: Duplicate of CQ43901. Please check CQ43901 for root cause |
| Change: Same as CQ43901 |
| Impact: All chipsets, RHEL5.4 only |
| |
| |
| Enhancements |
| ============ |
| 1. Problem: Cont00041327 - Linux: Need Ability to Identify Adapter |
| iSCSI Offload Capabilities |
| Cause: Refined fix which caused unlicensed device not to be |
| unregister with iscsi transport. This is a partial fix and |
| needs interface to be up before bnx2i loads. |
| Complete fix will be delivered in T5.2 |
| Change: Check for cnic_dev->mac_iscsi_conn while the device is |
| registered as this value will be cleared during |
| unregister_device() call |
| Impact: All chipsets, Linux |
| |
| |
| Version 1.8.9r (Sept 27, 2009) |
| ============================= |
| |
| Fixes |
| ===== |
| 1. Problem: Cont00041327 - Linux: Need Ability to Identify Adapter |
| iSCSI Offload Capabilities |
| Cause: bnx2i cannot determine license information unless the |
| device is registered with cnic and the network port is |
| initialized by the user (ifup). Because of limitation, |
| driver was registering transport name for all enumerated |
| NX2 devices |
| Change: Driver will continue to register all devices at init time |
| and unregister the transport name when license information |
| is available and found the device is not licensed for iSCSI. |
| This eliminates the need for a separate means to identify if |
| device support iSCSI or not. |
| Impact: All chipsets, Linux |
| |
| Enhancements |
| ============ |
| None |
| |
| |
| Version 1.8.9q (Aug 31, 2009) |
| ============================= |
| |
| Fixes |
| ===== |
| 1. Problem: Cont00043282 - linux:iscsi_offload:can not modporbe bnx2i after |
| installation of linux-nx2 v5.2.6 on RH 5.4 |
| Cause: RHEL5.4 has 2 sets of scsi_transport_iscsi and libiscsi modules, |
| second modules added specifically to support inbox bnx2i. With |
| the current service load order, scsi_transport_iscsi2 gets |
| loaded before bnx2id service is started. Initially bnx2id was |
| chosen to be loaded after network service is started because of |
| dependency of bnx2/bnx2x. Now that cnic driver implements weak |
| symbol linking with bnx2/bnx2x, we can load cnic, bnx2i modules |
| (start bnx2id service) much before network service |
| Change: start bnx2id service before iscsi/iscsid services |
| Impact: All chipsets, Linux |
| |
| Enhancements |
| ============ |
| None |
| |
| |
| Version 1.8.9p (Aug 17, 2009) |
| ============================= |
| |
| Fixes |
| ===== |
| None |
| |
| Enhancements |
| ============ |
| Updated README.TXT to reflect new combined packaging. nextreme2-<version> |
| and ported a bug fix related to doorbell register mapping in IA64 architecture |
| |
| |
| Version 1.8.9o (Jul 25, 2009) |
| ============================= |
| |
| Fixes |
| ===== |
| 1. Problem: Cont00042502 - Linux iSCSI HBA: SUT kernel panics after test |
| I/O is started |
| Cause: MPP driver failed to honor bnx2i's 'sg_tablesize' and |
| 'max_sectors' parameter causing bnx2i to overstep BD table memory. |
| Change: Workaround is to allocate 4KB of memory for each BD table, i.e. |
| 255 entries per table which is sufficient to handle a maximum |
| IO size of 512KB issued by MPP |
| Impact: All chipsets, Linux |
| |
| Enhancements |
| ============ |
| Above change will cause bnx2i to consume little more memory than previous |
| drivers |
| |
| |
| Version 1.8.9n (Jul 22, 2009) |
| ============================= |
| |
| Fixes |
| ===== |
| 1. Problem: Cont00042555 - Kernel panic occurs while running iLab iSCSI |
| automated test 6.4 (data digest error) |
| Cause: Some tests used to hang because session recovery code never |
| returned from wait due to sess->recovery_state mis-match |
| Change: Fixed wait state variable to check for sess->recovery_state = 0, |
| which is cleared when session is re-logged in |
| Impact: All chipsets, Linux, ESX |
| |
| Enhancements |
| ============ |
| None |
| |
| |
| Version 1.8.9m (Jul 01, 2009) |
| ============================= |
| |
| Fixes |
| ===== |
| None |
| |
| Enhancements |
| ============ |
| Updated Makefile in order to package bnx2i, bnx2, bnx2x and cnic together |
| |
| |
| Version 1.8.9l (June 30, 2009) |
| ============================= |
| |
| Fixes |
| ===== |
| |
| 1. Problem: DMA memory leak and eventualy run out of memory during |
| overnight test |
| Cause: wrong 'size' parameter is sent to pci_free_consistent() |
| Change: pass 'dma->size' instead of PAGE_SIZE as 2nd argument to |
| pci_free_consistent() |
| Impact: All chipsets, Linux, ESX |
| |
| 2. Problem: Linux iSCSI: Soft lockup seen while continuously restarting |
| iscsid service overnight with persistent targets attached |
| (bnx2i_conn_stop+0xc8/0x109) |
| Cause: login resources allocation failure was not handled correctly |
| in create_conn() which caused timer_del_sync() to be called |
| on an uninitialized timer in destroy_conn() path. |
| Change: fixed code to handle return value of |
| bnx2i_conn_alloc_login_resources() and also added a flags to |
| track if conn->poll_timer is initialized or not. |
| Impact: All chipsets, Linux, ESX |
| |
| 3. Problem: Everest1.0:Linux iSCSI:CX4 - kernel panic while running IPv6 |
| login/logout maxsessions stress(bnx2i_cm_remote_abort+0x23/0x41) |
| Cause: open-iscsi does conn_stop()/conn_destoy()/ep_disconnect()/ |
| sess_destroy() in the same order. So if remote RST/FIN is |
| received after conn_destoy() will cause panic because driver |
| will try to access ep->conn->worker_enabled and ep->conn is |
| already set to NULL in conn_destoy(). We found the same issue |
| on another test bed last evening |
| Change: Check ep->conn in cnic upcalls for remote RST/FIN and do not |
| start session recovery if 'ep->conn' is NULL. Also take sess->lock |
| to synchronize remote RST/FIN and conn_destroy() accessing ep->conn |
| Impact: All chipsets |
| |
| Enhancements |
| ============ |
| None |
| |
| |
| Version 1.8.9k (June 02, 2009) |
| ============================= |
| |
| Fixes |
| ===== |
| |
| 1. Problem: Cont00041700 - iSCSI Linux Offload:Everest: |
| rmmod bnx2x or bnx2 causes system to hang |
| Cause: hba_poll_timer is only valid for ESX |
| Change: ifdef code valid only for ESX |
| Impact: All chipsets, Linux |
| |
| Enhancements |
| ============ |
| None |
| |
| |
| Version 1.8.9j (May 30, 2009) |
| ============================= |
| |
| Fixes |
| ===== |
| |
| 1. Problem: Cont00041556 - Linux iSCSI: Kernel panic during target logout |
| Cause: ESX change caused this issue. Method to get session pointer from |
| iscsi_transport layer sess pointer is different for Linux and |
| ESX, With recent changes Linux code was trying to get |
| the sess pointer the ESX way |
| Change: Fix the above logic |
| Impact: All chipsets, Linux, ESX |
| |
| Enhancements |
| ============ |
| None |
| |
| |
| Version 1.8.9i (May 26, 2009) |
| ============================= |
| |
| Fixes |
| ===== |
| |
| 1. Problem: Cont00039906 - Linux iSCSI: Soft lockup seen when performing |
| adapter selftest with more than 10+ sessions connected |
| Cause: bnx2i was taking spinlock before calling cnic->register_device() |
| and cnic would call bnx2i_start() in the same context which |
| actually will sleep waiting for ISCSI_INIT response |
| Change: Fix is not to hold spinlock for the duration of register_device() |
| Impact: All chipsets, Linux, ESX |
| |
| 2. Problem: Cont00041210 - Everest1.0:Linux iSCSI:CX4 - kernel panic while |
| running heavy disk traffic with bnx2i v1.8.7 |
| (bnx2i_conn_main_worker+0x10b/0x70a) |
| Cause: There were several bug fixes to workqueue/tasklet in last week |
| and this panic dump is addressed by it |
| Change: Changes made to support tasklet implementation for ESX broke |
| some of the logic. Cleaned up a bunch of issues related to this |
| Impact: All chipsets, Linux, ESX |
| |
| Enhancements |
| ============ |
| More stable ESX code with tasklet implementation and enhanced |
| task management code. Build 00005 is based on this code. Some of the |
| tasklet and workqueue bug fixes are applicable to both ESX and Linux |
| |
| |
| Version 1.8.7 (May 13, 2009) |
| ============================= |
| |
| Fixes |
| ===== |
| 1. Problem: Various driver crashes in error recovery path |
| Cause: tasklet/workqueue are scheduled when connection |
| is in stopped state. |
| Change: Not to accept any commands if conn_stop() is called on |
| the connection and this will eliminate any tasklet/workqueue |
| scheduling. This was initially reported and more often seen |
| in ESX, but same problem exhists in Linux as well |
| Impact: All chipsets, Linux, ESX |
| |
| Enhancements |
| ============ |
| Further enhancements to tasklet/workqueue code |
| |
| |
| Version 1.8.6 (May 11, 2009) |
| ============================= |
| |
| Fixes |
| ===== |
| 1. Problem: Cont00040971 - iSCSI Boot Linux Offload:NX2: compile error |
| with bnx2i v1.8.5 on SuSE 10 SP2 |
| Cause: In order to support older kernel iscsi_compat.h defines some |
| functions which should have been defined 'static' but are not. |
| This creates trouble when scsi_transport_iscsi.h is included in |
| multiple *.c files. |
| Change: worked around iscsi_compat.h header file issues |
| Impact: All chipsets, SLES10 SP2 |
| |
| 2. Problem: Cont00040921 - ESX4.0 build 4.0.0-00000_x86_64 w/ bnx2i - |
| iscsi_cmd_win_closed |
| Cause: not conforming to rfc1982 |
| Change: Fixed serial arithmetic logic as per rfc1982 |
| Impact: ALL chipsets, Linux, ESX |
| |
| 3. Problem: Cont00040512 - ESX4.0 build 4.0.0-00000_x86_64 w/ bnx2i - |
| Disks disappear after overnight stress tests |
| Cause: tasklet was being scheduled without being enabled when connections |
| goes into recovery mode |
| Change: Tasklet is disabled in stop_conn() and enabled in bind_conn() |
| Impact: All chips + ESX40U1 |
| |
| 4. Problem: Cont00040920 - ESX4.0 build 4.0.0-00001_x86_64 w/ bnx2i - |
| bnx2i_process_new_cqes+0x7b |
| Cause: This issues is seen only in workqueue implementation for ESX as |
| scsi_host workqueue was not flushed fearing it would affect |
| other connections. But would cause work to be scheduled after |
| connection is torn down or in middle of recovery process |
| Change: per connection tasklet implementation will not exhibit this |
| failure as tasklet is disable in conn_stop() and re-enabled in |
| conn_bind() |
| Impact: All chipsets, ESX40U1 |
| |
| 5. Problem: Cont00040918 - ESX4.0 betabuild 4.0.0-00001_x86_64 w/ bnx2i |
| Cause: Duplidate of Cont00040920, please refer to Cont00040920 for |
| more details |
| Change: Duplidate of Cont00040920, please refer to Cont00040920 for |
| more details |
| Impact: All chipsets, ESX40U1 |
| |
| Enhancements |
| ============ |
| ESX40U1 driver changes to use tasklet instead of workqueue for command |
| transmission and CQE processing. |
| |
| |
| Version 1.8.5 (Apr 29, 2009) |
| ============================= |
| |
| Fixes |
| ===== |
| None |
| |
| Enhancements |
| ============ |
| ESX40U1 driver changes to match the updated iscsi_net API's |
| |
| |
| Version 1.8.4 (Apr 29, 2009) |
| ============================= |
| |
| Fixes |
| ===== |
| 1. Problem: Connection setup problems with 570x |
| Cause: Changes to 570X_SQE_DEFAULT macro caused alternate connections |
| to fail |
| Change: reverted back 570X_SQE_DEFAULT to 128 |
| Impact: 5706/5708/5709 |
| |
| Enhancements |
| ============ |
| Performance improvements mentioned above |
| |
| |
| Version 1.8.3 (Apr 26, 2009) |
| Version 1.8.2 (Apr 25, 2009) |
| ============================= |
| |
| Fixes |
| ===== |
| None |
| |
| Enhancements |
| ============ |
| Vmware ESX40U1 driver updates |
| |
| |
| Version 1.8.1 (Apr 25, 2009) |
| ============================= |
| |
| Fixes |
| ===== |
| 1. Problem: Cont00040099 - Linux iSCSI T4.6+ 57710 performance bottleneck |
| at 80K IOps (L2 and Offload) |
| Cause: CQE processing in softIRQ context was becoming bottleneck because |
| 5771x has only on MSI-X vector for iSCSI completion notification. |
| This caused 1 core to be pegged 100% processing completions. |
| Change: Implemented a per connection workqueue to process both command |
| request and completion. This spreads work load to across available |
| cores and boosted IOPS numbers to nearly at par with what should be |
| Impact: 57710/5771/57711E |
| |
| Enhancements |
| ============ |
| Performance improvements mentioned above |
| |
| |
| Version 1.8.0 (Apr 22, 2009) |
| ============================ |
| |
| Fixes |
| ===== |
| 1. Problem: Cont00040267: Linux iSCSI: Kernel panic during cable pull |
| with one iSCSI over native TCP connection + iSCSI offloaded |
| connection |
| Cause: iscsi daemon is calling iscsi_transport->ep_poll() with |
| ep_handle=0xffffffff eventhough driver failed ep_connect() |
| request. This causes ep_poll() to access invalid memory and |
| cause the crash |
| Change: Add additional check to ignore both ep_handle = 0xffffffff and |
| null pointer |
| Impact: 5706/5708/5709/57710/5771/57711E |
| |
| Enhancements |
| ============ |
| changed pci dma memory management code to be more stream lined |
| |
| |
| Version 1.7.0 (Mar 17, 2009) |
| ============================ |
| |
| Fixes |
| ===== |
| 1. Problem: Cont00039999 - Linux iSCSI: Usages count increases for bnx2x |
| when iSCSI sessions are connected via Teton/Xinan devices |
| Cause: Before looking up the route to target IP, there is a requirement |
| that bnx2i has to register with cnic all active devices. cnic |
| won't identify the device if the device is not registered. |
| So when the first connection is offloaded, bnx2/bnx2x module |
| usage count will be incremented once for every corresponding |
| NX2 device in the system even though connection is offloaded on |
| only one. This usage counts will be later decrement to zero when |
| the last connection is torn down. |
| Change: Fix is the unregister all idle devices before returning from |
| ep_connect() |
| Impact: 5706/5708/5709/57710/5771/57711E |
| |
| 2. Problem: Cont00040037 - Linux iSCSI: Need jumbo frame support for |
| Linux iSCSI offload in T5.0 |
| Cause: bnx2i was checking and not allowing connection offload is device's |
| MTU is set to > 1500 |
| Change: changed maximum MTU limit to 9000B |
| Impact: 5706/5708/5709/57710/5771/57711E |
| |
| 3. Problem: Cont00039906 - Linux iSCSI: Soft lockup seen when performing |
| adapter selftest with more than 10+ sessions connected |
| Cause: Multiple problem caused this issue - big connection teardown/ |
| cleanup timeout in bnx2i and bnx2 was swutching off interrupts |
| before propogating stop() call to ULPs |
| Change: bnx2 driver code was reordered to keep interrupts enabled during |
| ULP's stop() call and bnx2i driver timeouts are tuned based on |
| device type |
| Impact: 5706/5708/5709 |
| |
| 4. Problem: Cont00039648 - Linux iSCSI: Please add line in README.TXT that |
| states ipv6.ko is a requirement for cnic to load |
| Cause: Documentation enhancement request |
| Change: updated README.TXT to reflect the dependency requirements |
| Impact: 5706/5708/5709 |
| |
| Enhancements |
| ============ |
| None |
| |
| |
| Version 1.6.2 (Mar 10, 2009) |
| ============================ |
| |
| Fixes |
| ===== |
| 1. Problem: Cont00039912 - Linux iSCSI accel - unable to offload on NC532i, |
| says iSCSI not supported |
| Cause: mismatch in PCI Id definition between system include and driver |
| source |
| Change: fixed the mismatch |
| Impact: 57711/57711E |
| |
| Enhancements |
| ============ |
| None |
| |
| |
| Version 1.6.1 (Feb 23, 2009) |
| ============================ |
| |
| Fixes |
| ===== |
| 1. Problem: Performance on 5606/5708 is sluggish & session keeps recovering |
| Cause: 5706/5708 firmware can only handle 172 CQ entries and Everest |
| requirements of SQ/CQ to be integral number of pages was causing |
| this issue and 570x family has no such requirements |
| Change: Execute SQ/CQ size massaging code for 5771X device type only |
| Impact: 5706/5708 |
| |
| Enhancements |
| ============ |
| None |
| |
| |
| Version 1.6.0 (Jan 14, 2009) |
| ============================ |
| |
| Fixes |
| ===== |
| 1. Problem: Cont00038728 - Linux iSCSI:Everest:A1: iscsiadm becomes |
| unresponsive if wrong transport name is used |
| Cause: There was a list corruption in open-iscsi daemon code caused |
| when list element is blindly initialized when it is actually |
| a node in the pend_list. Also conn->link was not initialized |
| when bind_conn() failed which caused crash in destroy_conn() |
| code path. |
| Change: Fixed both open-iscsi user daemon and driver issues |
| Impact: 57710/57711E |
| |
| Enhancements |
| ============ |
| Updated copyright information |
| |
| |
| Version 1.4.9 (Jan 03, 2009) |
| ============================ |
| |
| Fixes |
| ===== |
| 1. Problem: CQ38744 - Everest1.5:Linux iSCSI:CX4 - Unable to connect |
| to more than ~450 sessions, out of host memory |
| Cause: Linux kernel can only address 1G memory which includes |
| all kernel code and data structures. This limitation would |
| not allow us to offload 1024 iscsi connections |
| Change: Limit number of outstanding tasks (SQ size) per connections |
| to 64 |
| Impact: 57711E |
| |
| Enhancements |
| ============ |
| None |
| |
| |
| Version 1.4.8 (Dec 31, 2008) |
| ============================ |
| |
| Fixes |
| ===== |
| 1. Problem: CQ38744 - Everest1.5:Linux iSCSI:CX4 - Unable to connect |
| to more than ~450 sessions, out of host memory |
| Note: This is 1 of 3 fixes made to support 1024 connections. |
| Refer to bnx2i-1.4.7 & netxtreme2-1.8.2c_1.48.7 release notes |
| for other changes |
| Cause: 992 connections limitation was due to limit on max numbers of |
| file descriptors 'bnx2id' application was allowed to open. |
| Default value is 1024, so bnx2id was able to allocate 1023 |
| socket structures and last 31 were not even delivered because |
| the daemon was unable to open char device to issue ioctl. |
| So driver ended up with only 992 tcp ports. |
| Change: Modified application to change RLIMIT_NOFILE parameter to 1056. |
| With this change we were able to successfully open 1024 connections |
| using 57711E device on a x86_64 system |
| Impact: 57711E |
| |
| Enhancements |
| ============ |
| Updated rc script to create '/dev/bnx2i' node during startup |
| |
| |
| Version 1.4.7 (Dec 29, 2008) |
| ============================ |
| |
| Fixes |
| ===== |
| 1. Problem: Unable to allocate endpoint structure for 513th connection |
| Cause: Driver was allocating a total of 512 endpoint structures due |
| to a macro definition |
| Change: defined ISCSI_MAX_ADAPTERS to 8 |
| Impact: 57711E |
| |
| Enhancements |
| ============ |
| None |
| |
| |
| Version 1.4.6 (Dec 22, 2008) |
| ============================ |
| |
| Fixes |
| ===== |
| 1. Problem: Cont00038965 - Everest1.5:Linux iSCSI:CX4 MF- bnx2i cid |
| TCP errors while running iSCSI + netperf stress traffic |
| Cause: queuecommand() would report device offine when |
| sess->lead_conn->ep is NULL. But actually this value will |
| be NULL between the time existing endpoint (EP) is cleaned and |
| a new endpoint is bound in bind_conn() call. This is a valid |
| transient state during connection recovery and driver is |
| suppose to report BUSY and not NO_CONNECT |
| Change: reverted back to old scheme |
| Impact: 5706/5708/5709/57710/57711 |
| |
| Enhancements |
| ============ |
| None |
| |
| |
| Version 1.4.5 (Dec 17, 2008) |
| ============================ |
| |
| Fixes |
| ===== |
| 1. Problem: Driver crash when interface IP address is changed while |
| there are actice connection |
| Cause: spinlock contention |
| Change: fixed spinlock contention |
| Impact: 5706/5708/5709/57710/57711 |
| |
| Enhancements |
| ============ |
| None |
| |
| |
| Version 1.4.4 (Dec 11, 2008) |
| ============================ |
| |
| Fixes |
| ===== |
| 1. Problem: Cont00038936 - LinuxiSCSI: bnx2x Firmware crash dump when |
| loging out of EMC target |
| Cause: Incorrect handling of TCP CONNECT failure caused iscsid to |
| behave improperly with follow on connections, ep_disconnect() |
| was getting called just 1-sec after ep_connect(). According to |
| implementation it should wait 15-secs before timing out, |
| while firmware times out in 9-secs (3 attempts at 3-sec |
| interval). So driver doesn't expect ep_disconnect() to be called |
| before 10-secs after ep_connect() returns |
| Change: Fixed handling of TCP CONNECT failure in driver which avoids |
| 'iscsid' to get into weird state. Also even though ep_disconnect() |
| is called immediately, driver will wait for firmware to complete |
| TCP_CONNECT request with either good or failed status before going |
| ahead with connection cleanup |
| Impact: 5706/5708/5709/57710/57711 |
| |
| 2. Problem: Cont00038965 - Everest1.5:Linux iSCSI:CX4 MF- bnx2i cid |
| TCP errors while running iSCSI + netperf stress traffic |
| Cause: Recently changed queuecommand() to report device office |
| if session is not in FFP stage. Actually we have to report |
| device offline only after session recovery timeout (120-secs) |
| is reached |
| Change: reverted back to old scheme |
| Impact: 5706/5708/5709/57710/57711 |
| |
| Enhancements |
| ============ |
| None |
| |
| |
| Version 1.4.3 (Dec 09, 2008) |
| ============================ |
| |
| Fixes |
| ===== |
| 1. Problem: Cont00038871 - Everest1.5:Linux iSCSI:CX4 MF- |
| CONN_DISCON timeout + bnx2x driver assert during cable pull test |
| Cause: Due to open-iscsi interface change, NOOP OUT was not working as |
| expected. open-iscsi user stack added following connection |
| params to determine if NOOP is supported in user daemon or |
| the kernel driver - |
| 1. ISCSI_PARAM_PING_TMO |
| 2. ISCSI_PARAM_RECV_TMO |
| As bnx2i depends on iscsid to implement this feature, it should |
| return -ENOSYS to set_param() call to update above said parameters. |
| Change: After implementing this change, iSCSI NOOP OUT started to behave |
| as expected. |
| Impact: 5706/5708/5709/57710/57711 |
| |
| 2. Problem: Cont00038797 - LinuxiSCSI:Segmentation fault when running |
| ifup/down and passing traffic |
| Cause: Partly caused by NOOP OUT issue explained above (Cont00038871) |
| and other issue was not guarding 'active_sess' list while |
| traversing in bnx2i_start_hba_shutdown() routine & not |
| properly handling in-recovery state in TMF code path |
| Change: Fixed above said conditions |
| Impact: 5706/5708/5709/57710/57711 |
| |
| Enhancements |
| ============ |
| None |
| |
| |
| Version 1.4.2 (Dec 03, 2008) |
| ============================ |
| |
| Fixes |
| ===== |
| 1. Problem: Everest1.5:Linux iSCSI:CX4 - bnx2x driver assert while changing |
| MTU size with targets connected |
| Cause: Issue was cause by mutex lock deadlock condition in |
| cnic when unregister_device() is called while bnx2i is still in |
| cnic_stop() function call processing. |
| Change: This issue is worked around in bnx2i by deferring inactive device |
| unregistering till all the connections are torn down |
| Impact: 57711 |
| |
| Enhancements |
| ============ |
| None |
| |
| |
| Version 1.4.1 (Nov 17, 2008) |
| ============================ |
| |
| Fixes |
| ===== |
| 1. Problem: Cont00038537 - Everest 1.5E MF-Linux iSCSI: |
| Unable to iSCSI login to target |
| Cause: bnx2i was requesting a large number of TCP ports |
| than bnx2id can allocate. |
| Change: bnx2i is changed to request 32 TCP ports at a time. |
| Eventually bnx2id will be fixed to handle socket()/bind() |
| call failure |
| Impact: 57711 |
| |
| Enhancements |
| ============ |
| Added support for 57711 |
| |
| |
| Version 1.4.0 (Nov 14, 2008) |
| ============================ |
| |
| Fixes |
| ===== |
| None |
| |
| Enhancements |
| ============ |
| Added support for 57711 |
| |
| |
| Version 1.3.11 (Nov 12, 2008) |
| ============================= |
| |
| Fixes |
| ===== |
| 1. Problem: Cont00038195 - LinuxiSCSI:Bnx2x kernel panic when running |
| read/write test or when the target became unaccessible |
| Cause: There was a possibilty driver will unregister with cnic before |
| all the connections are cleaned up. For such connection only |
| driver resources are freed in ep_disconnect(). Driver assumes |
| chip will be reset when ifdown request is completed and this |
| is true for 5706/5708/5709. However in case of 57710 certain |
| blocks such as CFC/SEARCHER will not be reset if second port |
| is up. |
| Change: So driver will have to wait for all connections to cleanup |
| before returning from NETDEV_GOING_DOWN notification. Also |
| driver will block scsi host before entering clean mode to |
| avoid any futher scsi command being queued with the driver |
| Impact: 57710 |
| |
| 2. Problem: Cont00038030 - LinuxiSCSI: Data corruption writing to iscsi |
| target |
| Cause: In Couple of scenarios driver was accessing memory immediately |
| after freeing. Also in wrong memory was cleared because of wrong |
| array index (control bits of ITT was not cleared in case of |
| aborted commands. This would cause when a write command is aborted) |
| Change: Rearranged memory resources freeing and cleaned ITT table indexing |
| code |
| Impact: 57710 |
| |
| Enhancements |
| ============ |
| Enforce max SQ size of 128 for 5706/5708/5709 devices and also adjust |
| to power of 2. |
| |
| |
| Version 1.3.10 (Oct 28, 2008) |
| ============================= |
| |
| Fixes |
| ===== |
| None |
| |
| Enhancements |
| ============ |
| Update RPM dependency in bnx2i.spec file from NetXtremeII to netxtrem2 |
| |
| |
| Version 1.3.9 (Oct 28, 2008) |
| ============================= |
| |
| Fixes |
| ===== |
| None |
| |
| Enhancements |
| ============ |
| Fixed a race condition causing kernel dump when a netdev/inet event |
| is received while session is being torn down. Durning iscsi session |
| tear down process, open-iscsi stack will execute tasks in following |
| order - |
| 1) iscsi logout |
| 2) destroy iscsi connection |
| 3) tear down endpoint (TCP connection) |
| 4. destroy iscsi session |
| |
| This issue will manifest when a netdev/inet event is received b/w |
| #2 and #4 |
| |
| |
| Version 1.3.8 (Oct 26, 2008) |
| ============================= |
| |
| Fixes |
| ===== |
| None |
| |
| Enhancements |
| ============ |
| Updated RPM spec file to reflect module dependency to NetXtemeII |
| instead of bnx2/bnx2x |
| |
| |
| Version 1.3.6 (Oct 16, 2008) |
| ============================= |
| |
| Fixes |
| ===== |
| 1. Problem: Cont00037814 - Linux iSCSI:Everest:A1: Kernel panic when |
| running dt during max sessions test |
| (cnic:cnic_get_bnx2x_ctx+0x59/0x6e) |
| Cause: Couple of issues attributed to this issue, |
| 1. bug in ep structure handling code in bnx2i driver |
| 2. memory corruption due to boundary over stepping in |
| bnx2x driver (fixed in 1.46.9) |
| Change: revamped endpoints offload / destroy list handling code |
| Impact: 57710 |
| |
| 2. Problem: Cont00037858 - Linux iSCSI:Everest:A1: bnx2i: ofld_timer: |
| CONN_DISCON timeouts when running login/logout continuously |
| to max number of sessions |
| Cause: bug in ep offload / destroy list handling code in bnx2i driver |
| Change: revamped endpoints offload / destroy list handling code |
| Impact: 57710 |
| |
| 3. Problem: Cont00037701 - LinuxiSCSI:EverestA1: Kernel Panic whe running |
| traffic on both ports |
| Cause: same as Cont00037814 |
| Change: see Cont00037814 above |
| Impact: 57710 |
| |
| Enhancements |
| ============ |
| Updated driver logs section in README.TXT |
| |
| |
| Version 1.3.5 (Oct 06, 2008) |
| ============================= |
| |
| Fixes |
| ===== |
| 1. Problem: Cont00037576 - Linux iSCSI:Everest:A1: Unable to connect |
| to more than 64 sessions per port |
| Cause: With 8 pages limit driver was able to allocate only 72 endpoint |
| structures. |
| Change: Doubled number of pages used for endpoint structures to 16 |
| Impact: 57710 |
| |
| 2. Problem: Test 5.9 failure with kernel panic |
| Cause: Incorrect handling in error path was causing SCSI-ML to |
| free device resources while some commands are still active. |
| Thus causing kernel panic when driver tried to unmap SG list |
| at a later point in time |
| Change: cleaned up session recovery path and cleanup active command list |
| in case host_reset() failed. |
| Impact: 57710 |
| |
| Enhancements |
| ============ |
| Increased TCP CLOSE timeout to 20-secs from 10 -secs to be in sync with |
| firmware limits |
| |
| |
| Version 1.3.4 (Sept 26, 2008) |
| ============================= |
| |
| Fixes |
| ===== |
| 1. Problem: Cont00037386 - Linux iSCSI: Installing drivers via |
| source tarball will not create a bnx2id startup script |
| Cause: Previous release was partially fixed and user still |
| need to run 'chkconfig' to get it to work |
| Change: Added 'chkconfig' to fix the issue properly |
| Impact: 5706/5708/5709/57710 |
| |
| 2. Problem: Cont00037576 - Linux iSCSI:Everest:A1: Unable to connect |
| to more than 64 sessions per port |
| Cause: It was hardcoded in header file |
| Change: Fixed code to limit 64 simultaneous iscsi connection on |
| 5706/5708/5709 and 128 connection on 57710 |
| Impact: 57710 |
| |
| |
| Enhancements |
| ============ |
| Increased num outstanding tasks (SQ size) to 256 for 57710. 570x still |
| has SQ size of 128 |
| |
| |
| Version 1.3.3 (Sept 22, 2008) |
| ============================= |
| |
| Fixes |
| ===== |
| 1. Problem: Cont00037386 - Linux iSCSI: Installing drivers via |
| source tarball will not create a bnx2id startup script |
| Cause: In previous release only carried partial fix by installing |
| only the binary, 'bnx2id' and not the init script |
| Change: updated makefile to copy init script along with 'bnx2id' binary |
| when 'install_usr' build target is issued. This was initially |
| fixed in 1.2.12 and got omitted in later releases |
| Impact: 5706/5708/5709/57710 |
| |
| |
| Enhancements |
| ============ |
| Added debug prints in ep_connect() and ep_disconnect() code path to |
| easily identify option-2 related issues |
| |
| |
| Version 1.3.2 (Sept 14, 2008) |
| ============================= |
| |
| Fixes |
| ===== |
| None |
| |
| Enhancements |
| ============ |
| 1) Inserted BUG_ON() to trap TCP disconnect timeout |
| 2) Turned off TCP timestamp and fixed receive window to 256K |
| 3) Added code to replenish RQ buffers before issuing any iscsi requests |
| |
| |
| Version 1.3.1 (Aug 07, 2008) |
| ============================= |
| |
| Fixes |
| ===== |
| 1. Problem: Cont00035910 - LinuxiSCSI:Kernel panic when running |
| login/logout with 64 sessions |
| Cause: iop mapped memory for connection doorbells was not |
| unmapped and also a small piece of memory was not freed. |
| This caused a slow memory leak and eventually system would |
| run out of memory |
| Change: Fixed memory leak issue |
| Impact: 5706/5708/5709 |
| |
| |
| Enhancements |
| ============ |
| Updates README.TXT file to add 'iface' usage with examples. |
| Fixed a critical corruption issue caused by memset() while clearing |
| SQ/RQ/CQ page table for 57710 devices, failed to adjust actual size |
| of page table which starts at an offset of DB structure size from |
| the base address. |
| |
| |
| |
| Version 1.2.14 (June 20, 2008) |
| ============================= |
| |
| Fixes |
| ===== |
| None |
| |
| Enhancements |
| ============ |
| Updates README.TXT file to clarify Broadcom iSCSI Offload software suite |
| loading process. Fixed init rc script to manually unload bnx2i and |
| cnic driver when bnx2id service is stopped. Earlier we would do |
| 'modprobe -r' which could potentially unload bnx2 module and even bring |
| the network interface down. 'service bnx2id stop' is only intended to |
| unload iscsi(storage) modules, keeping networking components intact. |
| |
| |
| Version 1.2.13 (June 19, 2008) |
| ============================= |
| |
| Fixes |
| ===== |
| 1. Problem: Cont00035285 - DF216309: Open iSCSI Initiators Not Provided for |
| RHEL5.2 and SLES10.2 |
| Cause: This was caused by interface change resulted in changes in |
| iscsi transport. This caused a data structure to be referenced |
| after being freed. |
| Change: Fixed session teardown code take care of this interface change |
| Impact: SLES10 SP2 and 5706/5708/5709 |
| |
| Enhancements |
| ============ |
| Removed all references to 57710 in README.TXT file and going forward |
| Broadcom will release single iscsi-initiator package for Redhat EL 5.0, |
| 5.1 and 5.2 |
| |
| |
| Version 1.3.0 (June 02, 2008) |
| ============================= |
| |
| Fixes |
| ===== |
| None |
| |
| Enhancements |
| ============ |
| Complete support for 57710 added |
| |
| |
| Version 1.2.12 (May 23, 2008) |
| ============================= |
| |
| Fixes |
| ===== |
| 1. Problem: Cont00035452 - Linux iSCSI: Installing drivers via source |
| tarball will not create a bnx2id startup script |
| Cause: In previous release only carried partial fix by installing |
| only the binary, 'bnx2id' and not the init script |
| Change: updated makefile to copy init script along with 'bnx2id' binary |
| when 'install_usr' build target is issued |
| Impact: 5706/5708/5709 |
| |
| Enhancements |
| ============ |
| None |
| |
| |
| Version 1.2.11 (May 22, 2008) |
| ============================= |
| |
| Fixes |
| ===== |
| 1. Problem: Cont00035451 - Linux iSCSI: Typo in line 29 of bnx2id |
| startup script |
| Cause: typo |
| Change: fixed the comment line in code |
| Impact: 5706/5708/5709 |
| |
| 2. Problem: Cont00035292 - Unnecessary Set Group ID Permission in |
| bnx2i Source |
| Cause: file permissions got changed unintentionally |
| Change: set correct file permissions for source code files |
| Impact: 5706/5708/5709 |
| |
| 3. Problem: Cont00035452 - Linux iSCSI: Installing drivers via source |
| tarball will not create a bnx2id startup script |
| Cause: not implemented |
| Change: added 'install_usr' command to Makefile and document the |
| required steps in README text |
| Impact: 5706/5708/5709 |
| |
| Enhancements |
| ============ |
| None |
| |
| |
| Version 1.2.10 (May 14, 2008) |
| ============================= |
| |
| Fixes |
| ===== |
| 1. Problem: Cont00035222 - DF215961: Cannot Compile bxn2i-1.2.8 on SLES10sp2 |
| Cause: SLES10SP2 back ported create_session() to include 2 additional |
| arguments and thus causing minor compilation warning. Also it |
| would create problems when use attempts to establish an |
| iscsi connection |
| Change: Modified makefile to detect number of argument to create_session |
| by looking at function prototype in header file, |
| include/scsi/scsi_transport_iscsi.h |
| Impact: 5706/5708/5709, uses 'awk' to parse the header file efficiently |
| |
| Enhancements |
| ============ |
| None |
| |
| |
| Version 1.2.9 (May 08, 2008) |
| ============================ |
| |
| Fixes |
| ===== |
| 1. Problem: Cont00035222 - DF215961: Cannot Compile bxn2i-1.2.8 on SLES10sp2 |
| Cause: Similar to Cont00035035, but SLES10 update 2 back ported |
| scsi_set_resid & scsi_get_resid and placed them in |
| include/scsi/iscsi_compat.h whereas RHEL 5.2 put them in |
| include/scsi/scsi_cmnd.h |
| Change: Modified makefile to accommodate these differences |
| Impact: 5706/5708/5709 |
| |
| 2. Problem: Cont00034621 - Linux iSCSI Xinan: Multiple iSCSI sessions |
| occasionally do not recover after cable pull |
| Cause: Sending TCP_RESET KWQE on a connection for which option-2 connect |
| was not initiated (TCP_CONNECT 1/3) caused neighboring iscsi |
| connection context memory to corrupt |
| Change: bnx2i will not issue cm_abort() if option-2 connect was not |
| successful, it will directly send request to destroy the context |
| Impact: 5709 |
| |
| 3. Problem: Cont00034872 - Linux iSCSI Xinan: Target does not recover |
| when running MPIO over both Xinan ports |
| Cause: duplicate of Cont00034621 |
| Change: See Cont00034621 for details |
| Impact: 5709 |
| |
| Enhancements |
| ============ |
| None |
| |
| |
| Version 1.2.8 (May 02, 2008) |
| ============================ |
| |
| Fixes |
| ===== |
| 1. Problem: Cont00034848 - Linux iSCSI Xinan: No network activity |
| (possible chip lockup) after running pqa script |
| (test 6.1-- Errors from initiator to target) in |
| a loop using IPv6. |
| Cause: wrong ITT was posted with login request causing 5709 firmware |
| to hang. This was caused because upper 2-bits weren't clearing |
| before putting aborted SCSI WRITE command's ITT to free list. |
| Same issue won't happen if aborted command was a SCSI READ, |
| because command type field is '0' for read commands. Also |
| normal scsi completion won't suffer the same as driver clears |
| this field before starting completion processing |
| Change: Driver clears command type fields whenever freeing an ITT value |
| Impact: 5709 |
| |
| 2. Problem: Cont00035035 - DF214119: bnx2i-1.2.7 Fails to Compile on |
| RHEL5.2-snapshot6 |
| Cause: Newer Linux api functions, scsi_set_resid() and scsi_get_resid() |
| were back ported to 2.6.18-88 kernel in RHEL5.2 resulting in |
| compilation errors because of duplicate definitions |
| Change: worked around in make file. This is a tricky issue caused by |
| distro's backporting newer features back to older kernels. |
| This causes following scenario - |
| 1. RHEL 5.1 kernel 2.6.18-53 does not define these functions |
| 2. RHEL 5.2 kernel 2.6.18-88 does define these functions |
| 3. kernels 2.6.19.x to 2.6.22.x does not define it |
| 4. kernel 2.6.23.x+ is part of kernel by default |
| This makes it hard as it can't be determined whether to define |
| ourselves or use kernel api's based on linux version as |
| LINUX_VERSION takes into account only first 3 bytes out of |
| 2.6.x-y. We counter this by greping for function prototypes |
| in the include directory and based on grep result define macros |
| which facilitates either local definition or references the kernel |
| api's |
| Impact: 5709 |
| |
| 3. Problem: Cont00034274 - Linux iSCSI: Running heavy stress on multiple sessions |
| causes connection resets and other errors |
| Cause: duplicate of Cont00034848 |
| Change: duplicate of Cont00034848 |
| Impact: 5709 |
| |
| 4. Problem: Cont00034977 - B57DELLCDT447 Contains Two Different Open iSCSI |
| Packages for RHEL5 |
| Cause: Two open-iscsi packages are for RHEL5.0 and RHEL5.1 |
| Change: updates README text file to reflect the importance of two RHEL |
| related open-iscsi packages |
| Impact: NA |
| |
| 5. Problem: Cont00035034 - DF213523: Offload Driver (bnx2i) not getting installed |
| on RHEL5.2 |
| Cause: Duplicate of Cont00035035, package manager was not able to install |
| the driver because non was built due to compilation error |
| Change: Duplicate of Cont00035035, package manager was not able to install |
| the driver because non was built due to compilation error |
| Impact: NA |
| |
| |
| Enhancements |
| ============ |
| User will be able to compile and install bnx2i on RHEL5.2, but would like |
| to remind users/OEMs that RHEL5.2 does not feature in supported distributions |
| list for this release and only minimal validation is achieved. |
| |
| |
| Version 1.2.7 (Apr 10, 2008) |
| ============================ |
| |
| Fixes |
| ===== |
| 1. Problem: Cont00034704 - Linux iSCSI Xinan: Target occasionally |
| does not recover when running ifup/down |
| Cause: This is an expected behavior based on the very nature |
| of the test script and environment. Test script continously |
| toggles the interface up & down with a time difference of |
| 1-sec. Also the interface is configured to aquire IP address |
| via' dhcp, which actually takes upto several seconds. |
| So iSCSI stack will hardly get a chance to reconnect to |
| target lun and after 120-secs SCSI disk will be taken offline |
| Change: Not applicable (not a bug) |
| Impact: 5709 |
| |
| 2. Problem: Cont00034705 - Linux iSCSI: Errors seen when running ifup/down |
| with multiple targets attached |
| Cause: logic issue where a loop variable is not reset for each |
| session processing causing 2nd and subsequent sessions |
| to be retried for infinitely long time. |
| Change: fixed the logic |
| Impact: 5709 |
| |
| Enhancements |
| ============ |
| None |
| |
| |
| Version 1.2.6 (Apr 07, 2008) |
| ============================ |
| |
| Fixes |
| ===== |
| 1. Problem: Cont00034260 - Linux iSCSI: Kernel panic while performing |
| ifup/down with target connected |
| Cause: Shutdown thread was waiting for 10-secs for iscsi driver to |
| cleanup all active session whereas ep_disconnect() thread |
| also has 10-sec timeout for TCP connection shutdown. This |
| was causing shutdown thread to return before connection |
| context destruction |
| Change: TCP connection termination timeout is set to a lower value |
| Impact: 5709 |
| |
| Enhancements |
| ============ |
| None |
| |
| |
| Version 1.2.5 (Apr 03, 2008) |
| ============================ |
| |
| Fixes |
| ===== |
| 1. Problem: Cont00034315 - Linux iSCSI Xinan: Scanning disks during |
| max sessions test causes connection problems |
| Cause: CID range allocated by cnic driver was not in sync with |
| firmware expectation causing firmware to allocate CID |
| range for which memory is not allocated by the driver |
| Change: sync'ed driver range with the firmware range |
| Impact: fixes host memory corruption caused by this mis-match |
| |
| 2. Problem: Cont00034260 - Linux iSCSI: Kernel panic while performing |
| ifup/down with target connected |
| Cause: Timing issue caused cnic driver to free resources & stop |
| hardware while bnx2i is still registered. This resulted in |
| cnic driver crash when bnx2i calls cm_destroy() api call to |
| free 'cnic_sock' |
| Change: During repetitive shutdown process driver avoids async events |
| such as connection completion notifications, teardown and |
| connection destroy taks and relies on top level session freeze |
| to keep sanity |
| Impact: Fixes system crash |
| |
| 3. Problem: Cont00031780 - LinuxiSCSI:Unable to load bnx2id from |
| iscsiBoot on suse X86-64 |
| Cause: RPM package was only install 32-bit version of 'bnx2id' and |
| relied of COMPAT feature in kernel module for interoperability. |
| However bnx2i source package did included a 64-bit version of |
| the binary and user was expected to install manually by hand |
| Change: RPM install script is modified to install 'bnx2id' binary based |
| on system architecture |
| Impact: Manual installed required to get iSCSI boot for 64-bit |
| architecture is no more required |
| |
| 4. Problem: Cont00033922 - Linux iSCSI Xinan: Kernel oops when doing |
| "service network restart" |
| Cause: duplicate of Cont00034260 |
| Change: refer to Cont00034260 for more details |
| Impact: refer to Cont00034260 for more details |
| |
| 5. Problem: Cont00031404 - Linux iSCSI: A successful login occurs |
| eventhough initiator receives login response with T-bit |
| and C-bit set to 1 |
| Cause: open-iscsi user daemon wasn't validating (C-bit && T-bit) |
| on received login response |
| Change: updated open-iscsi code to accomodate this in |
| 6.2.0.742-0.6c (RHEL5.0), 6.2.0.865-0.8b (RHEL 5.1) |
| Impact: minimal |
| |
| 6. Problem: Cont00034385 - DF205266: DKMS RPM for bnx2i will not |
| install with bnx2 and bnx2x present |
| Cause: install script was running 'rpm -qa | grep "bnx2.*rpm"' |
| to determine multiple instances of bnx2 RPM is installed. |
| But 57710 dkms rpm is named "bnx2x-*" which also matches |
| the previous expression misleading script to believe multiple |
| instance of same driver. |
| Change: Modified the search pattern to avoid pitfall |
| Impact: DKMS |
| |
| 7. Problem: Cont00034316 - LinuxiSCSI: When installing bnx2i rpm package |
| on Linux-64, it does not install bnx2id64, iscsiboot needs |
| bnx2id64 |
| Cause: RPM package was only install 32-bit version of 'bnx2id' and |
| relied of COMPAT feature in kernel module for interoperability. |
| However bnx2i source package did included a 64-bit version of |
| the binary and user was expected to install manually by hand |
| Change: RPM install script is modified to install 'bnx2id' binary based |
| on system architecture |
| Impact: Manual installed required to get iSCSI boot for 64-bit |
| architecture is no more required |
| |
| |
| Enhancements |
| ============ |
| None |
| |
| |
| Version 1.2.4 (Mar 17, 2008) |
| ============================ |
| |
| Fixes |
| ===== |
| Couple of issues related to PTE setup and queue size adjustments for |
| 57710 are fixed. Also resolved issues with 'sysfs' entry being read during |
| driver load which used to crash the system because it was triggering |
| context stage buffer and PCI bar register access which are suppose to be |
| initialized during iscsi conn offload process. Driver now checks and returns |
| error if the context stage buffer or the pci bar mapping is not present |
| |
| Enhancements |
| ============ |
| None |
| |
| |
| Version 1.2.3 (Mar 10, 2008) |
| ============================ |
| |
| Fixes |
| ===== |
| 1. Problem: Cont00034202 - linuxiSCSI:bnx2i failed to compile on |
| SLES10SP1 X86-64 |
| Cause: missing pci definition due to older kernel |
| Change: changed code to include 'resource_size_t' only if running |
| Linux kernel >= 2.6.18 |
| Impact: SLES 10u1 testing |
| |
| Enhancements |
| ============ |
| None |
| |
| |
| Version 1.2.2 (Mar 10, 2008) |
| ============================ |
| |
| Fixes |
| ===== |
| None |
| |
| Enhancements |
| ============ |
| Modified code to rearrange additional 'iscsi_kwqe_conn_offload3' to |
| include first RQ PTE followed by first CQ PTE [1 - 7]. As we don't intend |
| to include multiple CQ per connection in initial release, bnx2i will only |
| send '1' additional 'iscsi_kwqe_conn_offload3' |
| |
| Version 1.2.1 (Feb 27, 2008) |
| ============================ |
| |
| Fixes |
| ===== |
| None |
| |
| Enhancements |
| ============ |
| Added docbook style function & structure definition header and |
| defined new kwqe 'iscsi_kwqe_conn_offload3' required for offload support |
| on 57710 |
| |
| |
| Version 1.2.0 (Feb 21, 2008) |
| ============================ |
| |
| Fixes |
| ===== |
| None |
| |
| Enhancements |
| ============ |
| Added initial code to support 57710 device |
| |
| |
| Version 1.1.8 (Feb 20, 2008) |
| ============================ |
| |
| Fixes |
| ===== |
| 1. Problem: Cont00033893 - Linux iSCSI: bnx2id does not automatically |
| get loaded with v1.1.5 |
| Cause: init scripts, bnx2id.redhat & bnx2id.suse included in v1.1.5 |
| was in DOS file format, for that reason it was not executed |
| during system boot |
| Change: Converted init scripts to UNIX format |
| Impact: 5708/5709 iscsi testing |
| |
| |
| Enhancements |
| ============ |
| None |
| |
| |
| Version 1.1.7 (Feb 20, 2008) |
| ============================ |
| |
| Fixes |
| ===== |
| 1. Problem: Cont00033898 - Linux iSCSI: kernel panic when connecting |
| to targets with bnx2i v1.1.5 |
| Cause: Timing issue caused by new interface change b/w bnx2i/cnic/bnx2 |
| Earlier 'pcidev' was available when NX2 device is presented to |
| bnx2i and recently CNIC was modified to expose 'pcidev' only |
| after bnx2i registers the device. But it could happen interrupt |
| is processed in register device context causing kernel panic |
| Change: bnx2i HBA adapter and pci_dev binding is determined in |
| bnx2i_start() instead of waiting for register_device() compl. |
| It is gauranteed bnx2i_start() is called before CNIC interrupts |
| are enabled on the device. |
| Impact: 5708/5709 iscsi testing |
| |
| |
| Enhancements |
| ============ |
| None |
| |
| |
| Version 1.1.6 (Feb 19, 2008) |
| ============================= |
| |
| Fixes |
| ===== |
| 1. Problem: Cont00033899 - Linux iSCSI: RPM build errors on |
| SLES10 SP1 with bnx2i v1.1.5 |
| Cause: missing PCI id macro for 5709 in pci_ids.h header file |
| Change: If not defined driver will define the macro to support |
| older kernel such as 2.6.16 carried by SUSE 10SP1 |
| Impact: 5709 testing on SUSE10 SP1 |
| |
| |
| Enhancements |
| ============ |
| None |
| |
| |
| Version 1.1.5 (Feb 13, 2008) |
| ============================= |
| |
| Fixes |
| ===== |
| None |
| |
| Enhancements |
| ============ |
| bnx2i module is completely de-linked from bnx2 driver. Also bnx2i |
| is modified to adhere to new cnic driver interface specification |
| |
| |
| Version 1.1.4 (Jan 25, 2008) |
| ============================ |
| |
| Fixes |
| ===== |
| None |
| |
| Enhancements |
| ============ |
| IPv6 support added. |
| |
| |
| Version 1.1.2 (Dec 06, 2007) |
| ============================= |
| |
| Fixes |
| ===== |
| 1. Problem: Cont00031780 - LinuxiSCSI:Unable to load bnx2id from |
| iscsiBoot on suse X86-64 |
| Cause: missing 32-bit compat libraries |
| Change: use 64-bit binary distributed in the package |
| Impact: Use 64-bit 'bnx2id' binary in iSCSI boot environment |
| |
| 2. Problem: Cont00032801 - bnx2i: Add 64 bit bnx2id to the release |
| Cause: NA |
| Change: source package includes 64-bit binary under |
| 'bnx2i-1.x.y/bin/bnx2id64' (need to rename as 'bnx2id') |
| Impact: Enables user to build initrd image for 64-bit system |
| |
| 3. Problem: Cont00032141 - Linux iSCSI: Update README for MPIO |
| behavior in Section 5 |
| Cause: default values got changed in the latest open-iscsi package |
| Change: Documentation changes |
| Impact: None |
| |
| 4. Problem: Cont00032671 - Linux iSCSI: Interface up/down stress |
| causes kernel softlockup with 5706S |
| Cause: race condition and also hba shutdown thread was |
| un-necessarily waiting on an event which is mutually exclusive |
| ending up in timeout every single time. This wait cluase |
| speeds hba shutdown process resulted because of 'ifdown' |
| command |
| Change: fixed spin_lock issues and removed unnecessary wait event |
| mentioned above |
| Impact: None |
| |
| Enhancements |
| ============ |
| None |
| |
| |
| Version 1.1.1 (Dec 05, 2007) |
| ============================ |
| |
| Fixes |
| ===== |
| None |
| |
| Enhancements |
| ============ |
| Added init scripts to automatically load driver and the daemon |
| during boot. |
| |
| Version 1.1.0 (Nov 15, 2007) |
| ============================= |
| FIRMWARE - 4.4.0 |
| ======== |
| |
| Fixes |
| ===== |
| None |
| |
| Enhancements |
| ============ |
| NX2 5709 support added |
| |
| |
| Version 1.0.32 (Oct 18, 2007) |
| ============================= |
| FIRMWARE - 3.7.19 |
| ======== |
| |
| Fixes |
| ===== |
| 1. Problem: Cont00031905 - Linux iSCSI: login/logout stress against |
| wintarget with multiple luns causes kernel panic |
| Cause: This was an issue caused by Win Targets wierd behavior of |
| holding on to SCSI INQUIRY response till TMF is sent. Other |
| issue was a race condition when logging off iSCSI session |
| while TMF request is pending. this would clear out all |
| commands while TCM timer was still active. When TMF timer |
| expires, it tries to operate on a command already freed |
| when session logged out. |
| Change: if TMF is active while trying to logout, driver will wait for |
| TMF request to either complete or timeout. Only them it will |
| send iSCSI logout pdu. |
| Impact: iSCSI TMF and iSCSI Logout rocessing |
| |
| 2. Problem: Cont00031884 - Linux iSCSI: Kernel panic with ifdown/up |
| when logged into target with 5708s |
| Cause: This issue was caused by a race condition depending on when |
| GOING_DOWN message is received by the driver. Once this message |
| is received, driver will start cleaning up all active sessions |
| and any session already in recovery mode won't be bothered. |
| But when this bug is hit, GOING_DOWN was received when session |
| was in login in phase (recovery mode) and driver let it continue |
| and return to user. Once bnx2i returns to cnic, cnic driver would |
| release all resources including cnic_sock structures. One of the |
| cnic_sock structure belonged to iscsi session which was going |
| through login phase. This connection will stay alive and will |
| be cleaned up during next iteration of interface bring down and |
| CNIC driver won't find refence to this cnic_sock as it was |
| already freed. |
| Change: When HBA is shuting down, driver will wait for recovering |
| sessions to complete iSCSI, then tear active sessions down |
| before returing to user |
| Impact: HBA shutdown code |
| |
| Enhancements |
| ============ |
| None |
| |
| |
| |
| Version 1.0.31 (Oct 10, 2007) |
| ============================= |
| FIRMWARE - 3.7.16 |
| ======== |
| |
| Fixes |
| ===== |
| 1. Problem: Cont00031787 - Linux iSCSI: Red Hat system becomes |
| unresponsive after cable pull test |
| Cause: SCSI-ML issue which got in 2.6.19 kernel. Run same test on |
| 2.6.23 kernel and it did not exhibit this issue. For more |
| details refer to following URL's |
| https://bugs.launchpad.net/ubuntu/+source/linux-source-2.6.20/+bug/118833 |
| http://lists.parisc-linux.org/pipermail/parisc-linux-cvs/2006-September/037006.html |
| Change: To avoid crossing the recursion limit of 19, driver sets |
| 'cmd_per_lun' parameter n scsi_host_template to 16 |
| Impact: Could lower iops when measured on a single iSCSI connection |
| |
| Enhancements |
| ============ |
| None |
| |
| |
| Version 1.0.30 (Oct 05, 2007) |
| ============================= |
| FIRMWARE - 3.7.16 |
| ======== |
| |
| NOTICE - iSCSI License enforcement is turned on. |
| ====== |
| |
| Fixes |
| ===== |
| 1. Problem: Cont00031668 - Linux iSCSI Offload Licensing not enforced |
| Cause: Dupicate of CQ31577, FW identifies the card as HP NIC instead |
| of HP LOM, FW was checking for entire register instead of a |
| specific bit |
| Change: change the checking to refer to only a specific bit in MCP's |
| scratchpad and not the entire register |
| Impact: Licensing should work as expected on oem systems |
| |
| 2. Problem: Cont00031671 - Linux iSCSI: unable to connect to maximum number |
| of sessions (64), on an x86_64 system |
| Cause: Driver was allocating only 40 endpoint structures on |
| 64-bit systems. Driver has a logic of allocating a maximum of |
| #n pages of memory for each control structures (endpoint, |
| connection, session, etc') and #n is set to 4. On a 32-bit |
| system size of endpoint structure is 256B whereas on a 64bit |
| system it is ~400B. So driver was able to allocate 40 endpoint |
| structures |
| Change: increaded number of pages per control structure to '8' |
| Impact: None |
| |
| 3. Problem: Cont00031655 - Linux iSCSI: bnx2i: Error message - cmd not |
| allocated w/ v1.0.29 |
| Cause: one command structure was getting leaked when session goes into |
| recovery due to nop-out timeout |
| Change: NOPOUT requests are also queued in active command queue and |
| freed when session is cleaned up |
| Impact: None |
| |
| 4. Problem: Cont00031662 - Linux iSCSI: Kernel Oops running disktest with |
| maximum sessions test |
| Cause: driver was hard coding "sht->can_queue' parameter to 128 |
| (max outstanding commands issued by SCS-ML). Where as the |
| QP size was decreased using 'sysfs'. It get more complicated as |
| 'can_queue' parameter is advertised when iscsi transport is |
| registered which happens even before 'sysfs' setup. So will have |
| to remove 'sysfs' support for changing SQ/RQ/CQ size and instead |
| provide module parameters to choose these parameters based on |
| requirements for number of the iSCSI connection |
| Change: Removed 'sysfs' support for changing SQ/RQ/CQ size and instead |
| module parameters are included to change these parameters. |
| Also 4 command structures are reserved for slow path (TMF ABORT, |
| NOP-OUT, etc) commands. |
| Impact: None |
| |
| |
| Enhancements |
| ============ |
| Broadcom user daemon is renamed to 'bnx2id' and ioctl support added |
| instead of 'sysfs' |
| |
| |
| |
| Version 1.0.28 (Sep 29, 2007) |
| ============================= |
| FIRMWARE - 3.7.15 |
| ======== |
| |
| NOTICE - iSCSI License enforcement is turned on. |
| ====== |
| |
| Fixes |
| ===== |
| None |
| |
| Enhancements |
| ============ |
| All software components are bundled as RPM packages |
| |
| |
| Version 1.0.27 (Sep 28, 2007) |
| ============================= |
| FIRMWARE - 3.7.15 |
| ======== |
| |
| NOTICE - iSCSI License enforcement is turned on. |
| ====== |
| |
| Fixes |
| ===== |
| None |
| |
| Enhancements |
| ============ |
| Includes updated Firmware and CNIC driver |
| |
| |
| Version 1.0.26 (Sep 26, 2007) |
| ============================= |
| FIRMWARE - 3.7.14 |
| ======== |
| |
| NOTICE - iSCSI License enforcement is turned on. |
| ====== |
| |
| Fixes |
| ===== |
| None |
| |
| Enhancements |
| ============ |
| None |
| |
| |
| Version 1.0.25 (Sep 26, 2007) |
| ============================= |
| FIRMWARE - 3.7.14 |
| ======== |
| |
| NOTICE - iSCSI License enforcement is turned on. |
| ====== |
| |
| Fixes |
| ===== |
| 1. Problem: Cont00031537 - Linux iSCSI: Cable pull broken in v1.0.22 |
| Cause: iscsi driver was not destroying the connection context whenu |
| cm_connect() returns failure, it just cleand up driver |
| data structures. This is uncovered because of recent changes |
| to ARP handling in the cnic driver |
| Change: iscsi driver properly destroys iSCSI connection context |
| when cm_connect() returns with failure |
| Impact: None |
| |
| Enhancements |
| ============ |
| None |
| |
| |
| Version 1.0.24 (Sep 25, 2007) |
| ============================= |
| FIRMWARE - 3.7.14 |
| ======== |
| |
| NOTICE - iSCSI License enforcement is turned on. |
| ====== |
| |
| Fixes |
| ===== |
| 1. Problem: Cont00031513 - Linux iSCSI: Cannot log in to target if the |
| number of pending tasks have changed from the previous |
| login/logout sessions |
| Cause: bug in ISCSI_INIT message processing code in TXP/TPAT |
| Change: Fix the initialization of the iSCSI number of pending tasks |
| for TXP and TPAT |
| Impact: None |
| |
| 2. Problem: Cont00031509 - LinuxiSCSI:iSCSIBoot failed to to successfully |
| login to EMC ratget |
| Cause: Unusual behavior of kernel call neigh_event_send() |
| Change: neigh_event_send() returns error after sending the first ARP |
| entry. This error must be ignored and we should only rely on |
| subsequent NETEVENT_NEIGH_UPDATE for proper neighbour status. |
| Impact: None |
| |
| 3. Problem: Cont00031517 - LinuxiSCSIBoot: Connection is not restored |
| when disconnecting Primary HSRP router |
| Cause: 2.6.16 kernel does not support NETEVENT_NEIGH_UPDATE |
| Change: 2.6.16 kernel does not support NETEVENT_NEIGH_UPDATE, so router |
| failover with gratuitous ARP will be unknown to the driver. |
| To fix this issue, a timer was added to check the ARP entries |
| periodically to detect ARP changes on 2.6.16 kernels. |
| Impact: None |
| |
| Enhancements |
| ============ |
| Includes new CNIC driver, V1.1.19 |
| |
| |
| Version 1.0.23 (Sep 24, 2007) |
| ============================= |
| FIRMWARE - 3.7.13 |
| ======== |
| |
| NOTICE - iSCSI License enforcement is turned on. |
| ====== |
| |
| Fixes |
| ===== |
| 1. Problem: Cont00031529 - Linux iSCSI: EMC CX3 target errors out while |
| running Bonnie++ w/ v1.0.22 |
| Cause: programming error - when target returned "UnderFlow' condition |
| and residual_length = Total expected data length, driver used |
| to mistakenly report DDI_BAD_TARGET error. This was because |
| one conditonal check was coded as "<" instead of "<=" |
| Change: Changed the conditional check to "<=" |
| Impact: None |
| |
| Enhancements |
| ============ |
| None |
| |
| |
| Version 1.0.22 (Sep 21, 2007) |
| ============================= |
| FIRMWARE - 3.7.13 |
| ======== |
| |
| NOTICE - iSCSI License enforcement is turned on. |
| ====== |
| |
| Fixes |
| ===== |
| 1. Problem: Cont00031469 - Linux iSCSI: Kernel oops while logging out |
| during maximum sessions test |
| Cause: The warning and stack dump were caused by excessive calls to |
| neigh_release(). This was caused by the work queue being called |
| in a re-entrant way |
| Change: Driver was changed to use tasklet instead of work queues to fix |
| the problem. Tasklet are guaranteed to be single-threaded and |
| runs at a higher priority than work queues. |
| Impact: None |
| |
| Enhancements |
| ============ |
| None |
| |
| |
| Version 1.0.21 (Sep 19, 2007) |
| ============================= |
| FIRMWARE - 3.7.13 |
| ======== |
| |
| NOTICE - iSCSI License enforcement is turned on. |
| ====== |
| |
| Fixes |
| ===== |
| 1. Problem: Cont00031421 - Linux iSCSI: Hotplug feature - Does not reconnect |
| to target if nic is removed and put back in if there is already |
| an iSCSI session established |
| Cause: Offload driver cannot support this and driver will cleanup all |
| activer iSCSI session/connections which also includes all |
| outstanding commands and even releases the adapter structure |
| as part of hot remove. When the adapter is added there won't |
| be enough state information to restore the session. It is |
| is a good idea to orderly shutdown all iSCSI sessions before |
| removing the device |
| Change: Will not be addressed |
| Impact: None |
| |
| 2. Problem: Cont00031193 - LinuxiSCSI:iSCSIBoot continously drops and then |
| recover iscsi connection |
| Cause: This issue happens when 'iscsid' daemon is killed and restarted |
| while one or more iSCSI session are active. When the daemon is |
| restarted, it does not have reference to old TCP connection but |
| it knows iSCSI session and connection information. So iscsid |
| blindly stops the iSCSI connection, establishes a new |
| TCP connection and tries to bind it to iSCSI connection. This |
| results in a resource conflict situation as there is already |
| a TCP conn bound to iSCSI connection causing a bad state with |
| broken link between EP and CONN structures |
| Change: When driver detects this condition old TCP connection is |
| shutdown and cleaned up before binding the new TCP connection |
| to iSCSI connection |
| Impact: None |
| |
| 3. Problem: Cont00031205 - iscsid does not get the established session info |
| after restarting |
| Cause: This issue happens when 'iscsid' daemon is killed and restarted |
| while one or more iSCSI session are active. When the daemon is |
| restarted, it does not have reference to old TCP connection but |
| it knows iSCSI session and connection information. So iscsid |
| blindly stops the iSCSI connection, establishes a new |
| TCP connection and tries to bind it to iSCSI connection. This |
| results in a resource conflict situation as there is already |
| a TCP conn bound to iSCSI connection causing a bad state with |
| broken link between EP and CONN structures |
| Change: When driver detects this condition old TCP connection is |
| shutdown and cleaned up before binding the new TCP connection |
| to iSCSI connection |
| Impact: None |
| |
| |
| Enhancements |
| ============ |
| None |
| |
| |
| |
| Version 1.0.20 (Sep 17, 2007) |
| ============================= |
| FIRMWARE - 3.7.13 |
| ======== |
| |
| NOTICE - iSCSI License enforcement is turned on. |
| ====== |
| |
| Fixes |
| ===== |
| None |
| |
| Enhancements |
| ============ |
| Event coalescing is disabled |
| |
| |
| |
| Version 1.0.19 (Sep 17, 2007) |
| ============================= |
| FIRMWARE - 3.7.12 + COM (Event Coalescing) |
| ======== |
| |
| NOTICE - iSCSI License enforcement is turned on. |
| ====== |
| |
| Fixes |
| ===== |
| 1. Problem: Cont00031304 - Linux iSCSI: Does not see all the disks |
| after LUN has been remove and then re-added on the target |
| Cause: bug in SCSI sense data handling code - driver was copying |
| entire RQ buffer as is, actually first 2 bytes (length field) |
| should be omitted when copying to SCSI command sense buffer |
| Change: Only actual sense data is copied to sense buffer |
| Impact: None |
| |
| 2. Problem: Cont00031238 - Linux iSCSI: Kernel panic after running |
| disktest (w/various io) to Cisco target overnight |
| Cause: this is caused by race condition when command is completed |
| while TMF request is pending. 'cmd->scsi_cmd' will be set to |
| NULL ptr after completing the command to SCSI-ML and system |
| paniced dereferencing cmd->scsi_cmd when TMF completes waking |
| up the waiting thread. |
| Change: driver checks if the cmd completed while waiting for iSCSI TMF |
| Impact: none |
| |
| 3. Problem: Cont00031131 - LinuxiSCSI:Using HP target iscsi session drops |
| after nop-out timedout after 15 seconds on RH5 |
| Cause: some targets do not explicitly respond to NOPOUTs when there are |
| active commands. These iSCSI targets expect initiator to update |
| sequence numbers from SCSI CMD RESPONSE pdus |
| Change: bnx2i driver will not send nopout on wire when following |
| conditions are met - |
| 1. there are active SCSI commands |
| 2. one or more SCSI commands where sent between this and |
| previous nopout request |
| |
| Instead driver will itself respond to nopout. Infact we can even |
| change iscsid to keep track of 'cmdsn' and send down nopout |
| request only if connect is truely idle. We will evaluate changes |
| to iscsid and work to community to incorporate the change. |
| Impact: Initiator's proactive NOPOUTs are not seen on wire when the |
| iSCSI connection is not truely idle |
| |
| 4. Problem: Cont00031121 - Linux iSCSI: Kernel panic when running |
| ifdown/up test + disktest |
| Cause: In interface going down notification, iSCSI connection context |
| was destroyed without tearing down the TCP connection. |
| Another issue was option-2 s/w was not handling |
| 'SYN - ACK - RST' condition properly. |
| Change: Code is fixed to attempt TCP connection shutdown (FIN/RST) |
| before destroying connection context. |
| Impact: none |
| |
| 5. Problem: Cont00031024 - Linux iSCSI: Keyboard locks up when running |
| traffic to Sanrad w/ Suse10 SP1 |
| Cause: There were a bunch of issue uncovered by this test - |
| 1. race condition in cleanup code |
| 2. error while assigning LUN value during TMF request wqe |
| 3. issue related to RQ producer index posting, from the second |
| wraparound, indices posted was in the range 0x0 - 0x10, |
| 0x8000 - 0x8010. Correct RQ producer index range is |
| 0x1 - 0x10, 0x8001 - 0x8010 (this example considers total |
| of 16 RQ buffers) |
| 4. RQ producer suppose to be increment by driver on every |
| unsolicited PDU that generated a CQE(even without iSCSI data) |
| Change: code changes to take care of all above said issues |
| Impact: none |
| |
| 6. Problem: Cont00031221 - Linux iSCSI: Bonnie++ reports drastic I/O error |
| when running to EMC AX100SCi target |
| Cause: combination of Cont00031304 and Cont00031024 (issue #4) |
| Change: combination of Cont00031304 and Cont00031024 (issue #4) |
| Impact: none |
| |
| 7. Problem: Cont00031203 - Linux iSCSI: LUN rescan does not complete after |
| cable pull when connected to multiple targets |
| Cause: couple of issues attributed to this issue - |
| 1. order of conditional checks - link down check was before |
| session recovery state. Actually order should be reversed |
| 2. old recovery state should be a per session attribute but |
| instead was kept as static variable in bnx2i_queuecommand(). |
| When there were multiple sessions this broke state transition |
| Change: Fixed both the issues |
| Impact: None |
| |
| 8. Problem: Cont00031194 - Linux iSCSI: traffic does not resume on standby |
| nic when cable pulled during MPIO testing |
| Cause: couple of issues attributed to this issue - |
| 1. order of conditional checks - link down check was before |
| session recovery state. Actually order should be reversed |
| 2. old recovery state should be a per session attribute but |
| instead was kept as static variable in bnx2i_queuecommand(). |
| When there were multiple sessions this broke state transition |
| Change: Fixed both the issues |
| Impact: none |
| |
| 9. Problem: Cont00031383 - LinuxiSCSI:iSCSIBoot encounters connection |
| failure during iscsiBoot |
| Cause: Related to option-2 issue of not handling 'SYN - ACK - RST' |
| condition properly. |
| Change: Instead of sending Reset on bad ack sequence segment when |
| expecting syn/ack, just redirect to L2 in order for it to |
| send the reset (for the sake of simplicity) |
| Impact: Second SYN request should succeed in establish the |
| 3-way handshake |
| |
| |
| Enhancements |
| ============ |
| Event coalescing is implemented |
| |
| Version 1.0.18 (Aug 30, 2007) |
| ============================= |
| FIRMWARE - 3.7.11 |
| ======== |
| |
| NOTICE - iSCSI License enforcement is turned on. |
| ====== |
| |
| Fixes |
| ===== |
| 1. Problem: Cont00031121 - Linux iSCSI: Kernel panic when running |
| ifdown/up test + disktest |
| Cause: Driver was not tearing down the connection when interface was |
| brought down. This was causing TCP connection to be active on |
| the target side and won't let initiator to reuse the port. |
| Driver is fixed to attemp TCP connection teardown but firmware |
| needs to fixed as well to either indicate error status to |
| driver or return sending SYN packet when first 3-way handshake |
| fails |
| Change: Driver initiates TCP connection teardown process before |
| cleaning up iSCSI state |
| Note: Need firmware fix to resolve SYN - ACK - RST issue as same |
| issue will resurface when 'ifdown' command is issued when cable |
| is disconnected |
| Impact: none |
| |
| Enhancements |
| ============ |
| None |
| |
| |
| Version 1.0.17 (Aug 29, 2007) |
| ============================= |
| FIRMWARE - 3.7.11 |
| ======== |
| |
| NOTICE - iSCSI License enforcement is turned on. |
| ====== |
| |
| Fixes |
| ===== |
| 1. Problem: Cont00031063 - Linux iSCSI: Kernal panic when attempting |
| target login (w/o authentication) with certain login parameters |
| Cause: this is an iET target implementation issue. Target is not |
| setting 'F' bit in the last datain pdu of a sequence. |
| In this test scenario, MBL = MRDSL (initiator) = 2K and the |
| command was a scsi read \ with exp data length = 4K. |
| Target sends 2 datain's - |
| 1. datasn=0, data segment len = 2K, F=0, S=0 |
| 2. datasn=1, data segment len = 2K, F=1, S=1 |
| |
| In first DATAIN pdu, 'F' should have been set to '1'. |
| MIPS firmware correclty detects the error & notifies the driver. |
| Driver actually starts the recovery phase, but every single |
| connection will end up in same fate as the 1st. As this happens |
| in SCSI discovery phase right after the iSCSI login, user shell |
| will never return and iscsid will keep retrying. |
| Change: Fixed driver crash issue and made code changes to iET software to |
| be more 3720 compliant. SWE will publish the code changes to |
| iET development community |
| Impact: none |
| |
| Enhancements |
| ============ |
| Made some performance improvements change in CNIC driver which should |
| avoid some spurious interrupts under heavy I/O |
| |
| |
| Version 1.0.16 (Aug 23, 2007) |
| ============================= |
| FIRMWARE - 3.7.11 |
| ======== |
| |
| NOTICE - iSCSI License enforcement is turned on. |
| ====== |
| |
| Fixes |
| ===== |
| 1. Problem: Cont00030122 - Linux iSCSI: Disk does not reappear after |
| cable pull on Sanrad target |
| Cause: link change events was not handled in iscsi driver |
| Change: Link change events are handled in driver correctly and |
| bnx2i driver will not issue new scsi commands / scsi tmf |
| requests to chip if the link is down |
| Impact: none |
| |
| 2. Problem: Cont00031024 - Linux iSCSI: Keyboard locks up when running |
| traffic to Sanrad w/ Suse10 SP1 |
| Cause: This issue uncovered few bugs - |
| 1. race condition in cleanup code |
| 2. there was a coding error while assigning LUN value |
| during TMF request wqe formation |
| 3. logic error in RQ producer index posting - from second |
| RQ index wrap around, producer index posted was |
| (0x0 - RQ_Size) and (0x8000 - (0x8000 + RQ_Size)). |
| Correct indices range is (0x1 - RQ_Size) and |
| (0x8001 - (0x8001 + RQ_Size)) |
| Change: All above said issues were resolved |
| Impact: none |
| |
| Enhancements |
| ============ |
| None |
| |
| |
| Version 1.0.15 (Aug 22, 2007) |
| ============================= |
| FIRMWARE - 3.7.11 |
| ======== |
| |
| NOTICE - iSCSI License enforcement is turned off. |
| ====== |
| |
| Fixes |
| ===== |
| |
| 1. Problem: Cont00030809 - Linux iSCSI: Able to log in to target when |
| FirstBurstLength > MaxBurstLength |
| Note : Check more accurate description of issue at hand when this |
| issue was first resolved |
| Cause: To be in sync with SW open-iscsi implementation, offload driver |
| will not allow FBL > MBL when either immediate data or |
| unsolicited data is enabled, irrespective of target advertised |
| MRDSL |
| Change: Not to allow FBL > MBL when either immediate data or |
| unsolicited data is enabled |
| Impact: None |
| |
| Enhancements |
| ============ |
| None |
| |
| |
| Version 1.0.14 (Aug 21, 2007) |
| ============================= |
| FIRMWARE - 3.7.11 |
| ======== |
| |
| NOTICE - |
| ====== |
| iSCSI License enforcement is turned off. Also TCP port binder |
| utility is bundled in this release, user has to start |
| 'portbind' daemon before attempting to establish iSCSI sessions |
| |
| Fixes |
| ===== |
| 1. Problem: Cont00030892 - Linux iSCSI: Enhancement Request - Print out |
| appropriate message when session cannot be established due to |
| restriction in iSCSI licenses |
| Cause: MIPS firmware was returning single failure error code |
| Change: MIPS firmware returns newly defined error code if unable to |
| allocate iSCSI context space |
| Impact: None |
| |
| 2. Problem: Cont00030042 - Linux ISCSI - Session freezes running |
| ISCSI initiator at 10Mb/s-Hd |
| Cause: iscsi_discovery script under open-iscsi/utils folder was used to |
| discover and connect to targets. This scripts was using iSER to |
| connect to target, so in effect 2 simulaneous connections were |
| made to target |
| Change: not to use iscsi_discovery |
| Impact: None |
| |
| 3. Problem: Cont00031024 - Linux iSCSI: Keyboard locks up when running |
| traffic to Sanrad w/ Suse10 SP1 |
| Cause: race condition in cleanup code and also there was a coding error |
| while assigning LUN value during TMF request wqe formation |
| Change: cleaned up error path to hammer out few remaining bugs |
| Impact: More stable error recovery code |
| |
| 4. Problem: Cont00031040 - Linux iSCSI: Kernel oops occurs between long |
| transmit timout and recovery. |
| Cause: Same as Cont00031024 |
| Change: Same as Cont00031024 |
| Impact: Same as Cont00031024 |
| |
| 5. Problem: Cont00029844 - Linux ISCSI - Bonnie++ fails while testing |
| against Linux Target |
| Cause: Same as Cont00031024 |
| Change: Same as Cont00031024 |
| Impact: Same as Cont00031024 |
| |
| 6. Problem: Cont00030809 - Linux iSCSI: Able to log in to target when |
| FirstBurstLength > MaxBurstLength |
| Cause: This is a iSCSI target implementation issue - during login |
| reponse following parameters were agreed b/w target and |
| the initiator - |
| 1. MaxBurstLength (MBL) - 32768 |
| 2. FirstBurstLength (FBL) - 65536 |
| 3. MaxReceiveDataSegmentLength Initiator - 131072 (advertised) |
| 4. MaxReceiveDataSegmentLength Target - 8192 (not advertised, |
| spec defaults) |
| 5. ImmediateData=Yes |
| 6. InitialR2T=Yes |
| |
| When all these parameters are put together Initiator can only |
| send 8192B of immediate data and no unsolicited data. So any |
| negotiated FBL value greater than 8192 is a waste and target |
| might be ignoring it. |
| Change: Third party issue |
| Impact: Won't be addressed |
| |
| Enhancements |
| ============ |
| Fixed one issue related to iSCSI R2T statistic counter update code. |
| Also 'portbind' utility is bundled with this release and the user has |
| to start the daemon before attempting to establish iSCSI sessions |
| |
| |
| Version 1.0.13 (Aug 07, 2007) |
| ============================= |
| FIRMWARE - 3.7.10_b0 |
| ======== |
| |
| NOTICE - iSCSI License is required to use iSCSI Offload |
| ====== |
| |
| Fixes |
| ===== |
| Check CQ resolution information in 1.0.12 (open community release) |
| 1. Cont00030950 |
| 2. Cont00030948 |
| 3. Cont00030903 |
| 4. Cont00029670 |
| 5. Cont00030227 |
| 6. Cont00030817 |
| |
| Enhancements |
| ============ |
| None |
| |
| Version 1.0.12 (Aug 06, 2007) |
| ============================= |
| FIRMWARE - 3.7.10_b0 |
| ======== |
| |
| NOTICE - iSCSI License is required to use iSCSI Offload |
| ====== |
| |
| Fixes |
| ===== |
| 1. Problem: Cont00030950 - Linux iSCSI: FIN packet is NOT sent out |
| from initiator after each target logout. |
| Cause: Driver was using a single flag to mark FIN received and |
| RST received. Driver used to skip cm_close() path when this |
| flag is set and directly initiate connection context destroy |
| Change: Now this flag is separated into 2 different flag bits |
| and driver will take following action based on state machine - |
| 1. FIN received - initiated an option-2 request to send FIN |
| if remote socket layer sent us FIN either with logout |
| respons PDU or standalone TCP segment with FIN flags set |
| 2. RST received - will skip cm_close() path and directly |
| proceeds to destroy connection context |
| Impact: should also resolve occational "4 - encountered connection |
| failure" error condition when attempting to create a |
| new iSCSI connection |
| |
| 2. Problem: Cont00030948 - Linux iSCSI: Kernel Oops occurs after |
| 3-way handshake (for target login) failed. |
| Cause: In ep_disconnection thread driver tried to dereference |
| a null pointer, ep->sess. this structure element is assigned |
| correct value in conn_bind() routine and this routine is not |
| called when ep_connect() fails because of 3-way handshake |
| failure |
| Change: Check validity of ep->sess pointer before de-referencing |
| Impact: None |
| |
| 3. Problem: Cont00030903 - Linux iSCSI: Cannot log in to target after |
| unloading/loading iSCSI offload drivers if iscsid is not |
| restarted |
| Cause: Everytime is driver is unloaded and reloaded, it is not |
| guarenteed the same 64-bit handle is allocated to |
| iSCSI transport name. 'iscsid', open-iscsi user daemon |
| will cache transport attributes/properties only when the |
| transport name is first discovered. This will result in |
| 'iscsid' trying to use the stale transport handle which |
| is not recoqnized by kernel iscsi tranport module |
| Change: 'iscsid' is changed to check for changed transport handles |
| of existing transport names while scanning iscsi transports |
| directory for updates |
| Impact: Need to co-ordinate with Mike Christie to push this change |
| upstream |
| |
| 4. Problem: Cont00029670 - Linux ISCSI - encounter error |
| (4 - encountered connection failure) when loging to the target |
| Cause: related to Cont00030948, as initiator did not send FIN - ACK, |
| socket was alive at the other end. This causes target to |
| ignore SYN packet when tuple matches with exisiting active |
| connection and send an ACK segment instead |
| Change: Driver code is modified to gracefully shutdown the connection |
| with a FIN/ACK TCP segment before destroying the |
| iSCSI connection context. This ensure ordely shutdown of |
| TCP socket at the other end. |
| Impact: None |
| |
| 5. Problem: Cont00030227 - Linux iSCSI: Login/logout and traffic stress |
| test causes kernel panic |
| Cause: KCQ context was not properly re-initialize when driver |
| tries to stop KCQ and re-init KWQ/KCQ |
| Change: driver and mips firmware was fixed to correctly re-initialize |
| KCQ context when KWQ/KCQ is re-initilaized by the driver |
| Impact: None |
| |
| 6. Problem: Cont00030817 - Linux iSCSI: Login/logout stress causes |
| iscsid process to disappear |
| Cause: related to Cont00030227 |
| Change: refer to Cont00030227 entry above |
| Impact: None |
| |
| |
| Enhancements |
| ============ |
| Driver code was modified as per review comments / suggestions |
| from Arlando Carvalho de Melo |
| |
| |
| Version 1.0.11 (Aug 02, 2007) |
| ============================= |
| FIRMWARE - 3.7.10_a0 |
| ======== |
| |
| Fixes |
| ===== |
| None |
| |
| Enhancements |
| ============ |
| changed a couple of print messages for initial Linux community |
| |
| |
| Version 1.0.10 (Aug 02, 2007) |
| ============================= |
| FIRMWARE - 3.7.10_a0 |
| ======== |
| |
| Fixes |
| ===== |
| 1. Problem: Cont00029443 - Linux iSCSI: iSCSI licenses in xDiag not |
| enforced |
| Cause: not implemented as licensing scheme was finalized very recently |
| Change: Licensing code is implemented in MIPS firmware |
| Impact: iSCSI Offload won't work on engineering boards / servers LOMs |
| which does not carry proper licensing |
| |
| 2. Problem: Cont00030863 - Linux iSCSI: Transport name for 5706 devices is |
| titled bcm5708-xxxxxx w/ v1.0.07 and above |
| Cause: PCI device ID field was cleared by mistake which cased driver to |
| choose the default device type, '5708' |
| Change: fixed in code |
| Impact: transport name format for 5706 devices will be 'bcm5706-xxxxxx' |
| |
| Enhancements |
| ============ |
| None |
| |
| |
| Version 1.0.09 (July 31, 2007) |
| ============================= |
| FIRMWARE - 3.7.9_a1 |
| ======== |
| |
| Fixes |
| ===== |
| 1. Problem: Cont00030788 - Linux iSCSI: CHAP is broken in v1.0.07 |
| Cause: Bug in connection state machine prevented driver from |
| sending multiple iSCSI login requests to firmware |
| Change: connection state machine changed to take care of this issue |
| Impact: none |
| |
| Enhancements |
| ============ |
| None |
| |
| Version 1.0.08 (July 30, 2007) |
| ============================= |
| FIRMWARE - 3.7.9_a1 |
| ======== |
| |
| Fixes |
| ===== |
| 1. Problem: Cont00030302 - Linux iSCSI: Session disconnect and |
| kernel panic when formatting EMC target w/ |
| NOP Out interval set to 10 |
| Cause: there were a few repeated iSCSI protocol warning messages |
| Change: Driver changed to display each warning once for each session |
| Impact: none |
| |
| 2. Problem: Cont00029546 - Linux iSCSI: Requires upgrade to 2.6.19 |
| kernel on Suse10 |
| Cause: SLES10 update 1 had older open-iSCSI components |
| Change: SLES10 SP1 has a newer open-iSCSI and we don't need kernel upgrade |
| Impact: none |
| |
| 3. Problem: Cont00030820 - Linux iSCSI: Error messages seen on |
| Cisco MDS 9216 target w/ v1.0.07 |
| Cause: FW generates iSCSI Error KCQE for each iSCSI protocol |
| violation whether is configured to be treated as warning |
| or error. So driver will priting message for each indication, |
| this caused a flury of messages and slowing down the system. |
| Now driver is changed to print each type of warning only once. |
| Change: Driver prints message only once for each iSCSI protocol |
| violation which is configured to be treated as WARNING |
| and not an ERROR |
| Impact: none |
| |
| 4. Problem: Cont00029689 - Linux iSCSI: Maximum of 16 iSCSI sessions |
| supported |
| Cause: Driver was limiting max offloaded connections to 32 |
| Change: driver and FW are equipped to support upto 64 iSCSI connections |
| Impact: none |
| |
| 5. Problem: Cont00030805 - Linux iSCSI: iSCSI Rx Statistics not |
| incrementing w/ v1.0.07 |
| Cause: issue was introduced in v1.0.07 when code was revamped to |
| meet Linux coding standards. A stale structure element |
| was being check to determine whether the completion is for |
| READ or WRITE command. 'Cuz of constant value of this |
| absolete structure member, same code path was take all |
| the time. |
| Change: Correct structure member is referenced to determine whether |
| the command is SCSI READ or WRITE |
| IMP: currently couple of counter are not correctly implemented |
| in FW and should be taken care in next release. Other than |
| these (R2T/DATAOUT pdu count) everything else look to be fine. |
| Impact: none |
| |
| Enhancements |
| ============ |
| This release is tested on SUSE Enterprise Linux Server 10 (Service |
| Pack 1). Open-iSCSI packaged with SLES 10 SP1 works with offload iSCSI driver |
| and we do not require kernel update on SLES |
| |
| Version 1.0.7 (July 25, 2007) |
| ============================= |
| FIRMWARE - 3.7.7 |
| ======== |
| |
| Fixes |
| ===== |
| 1. Problem: Cont00030060 - Linux iSCSI: Hotplug using fakephp driver |
| w/ iSCSI drivers loaded does not work |
| Cause: Hotplug feature was incomplete |
| Change: This is implemented correctly in cnic as well bnx2i driver |
| in version 1.0.7 release |
| Impact: Hotplug feature is fully supported |
| |
| 2. Problem: Cont00030302 - Linux iSCSI: Session disconnect and kernel panic |
| when formatting EMC target w/ NOP Out interval set to 10 |
| Cause: couple of issue attirbuted to this - |
| 1. race condition in driver caused by not properly guarding |
| critical sections |
| 2. EMC target has issues handling nop-out requests when |
| link is not idle, i.e. if a SCSI command follows the nop-out, |
| it will not respond with nop-in. This caused system crash as |
| the driver was not properly recovering from this failure. |
| Change: System crash is fixed and the initiator reconnects to target |
| after tearing down the connection |
| Impact: None |
| |
| 3. Problem: Cont00030013 - Linux iSCSI: Running disktest read/write with |
| NOP Out interval set to 10 causes system lockup |
| Cause: there was a bug in 'cmdsn' assignment code |
| Change: fixed 'cmdsn" assignement code |
| Impact: None |
| |
| 4. Problem: Cont00030066 - ISCSI Linux - System hangs when issue a couple |
| of ifdown/ifup command |
| Cause: There were few bugs in iscsi driver not properly synchronizing events |
| such as connection setup and interface reset happening simultaneosuly. |
| During ifdown, the cnic will shutdown and a number of bugs were triggered. |
| The L4 connection code did not unregister, and so during subsequent ifup, |
| it could not be registered again. There was also a lock imbalance when |
| L4 connection code tried to register again, and this caused the soft lockup. |
| Change: Now it's all taken care and also driver tracks age of the adapter |
| (number of times it's reset) which allows iscsi driver to detect if |
| the network interface is reset between 2 events from iscsi daemon, |
| e.g. connect establishment and login pdu send |
| Impact: None |
| |
| 4. Problem: Cont00029719 - Linux iSCSI: Enhancement Request - MTU size > 1500 |
| should not be allowed for bnx2 driver |
| Cause: bnx2i driver was not checking MTU |
| Change: bnx2i driver will disallow any iSCSI connection offload if network device's |
| MTU is > 1500B |
| Impact: |
| |
| Enhancements |
| ============ |
| Source code was revamped to meet Linux coding standards |
| |
| |
| Version 1.0.6 (July 10, 2007) |
| ============================= |
| FIRMWARE - 3.7.6_A0 |
| ======== |
| |
| Fixes |
| ===== |
| 1. Problem: Cont00030435 - Linux iSCSI: Cannot log into certain targets |
| w/ driver package v1.0.05 |
| Cause: Linux iSCSI package version 1.0.5 contained firmware version 3.7.4 |
| and it seems the firmware has this issue. This issue not |
| seen with firmware 3.7.6_a0 |
| Change: new firmware image |
| Impact: none |
| |
| Enhancements |
| ============ |
| None |
| |
| Version 1.0.5 (July 06, 2007) |
| ============================= |
| Fixes |
| ===== |
| 1. Problem: Cont00030060 - Linux iSCSI: Hotplug using fakephp driver w/ |
| iSCSI drivers loaded does not work |
| Cause: Hotplug was not implemented properly |
| Change: Support was added in bnx2i driver and also bnx2i-cnic driver |
| interface was upgraded to support hotplug |
| Impact: all of login - logout, driver load - unload test cases need |
| to be re-run to thoroughly validate the interface change |
| |
| Enhancements |
| ============ |
| 1. This release includes iSCSI context dump utility and the required |
| driver hooks is included in this release |
| 2. bnx2i and cnic driver interface changed quite a bit while adding |
| hotplug support |
| |
| |
| Version 1.0.04 (May 30, 2007) |
| ============================= |
| Fixes |
| ===== |
| None |
| |
| Enhancements |
| ============ |
| Added print statement to display network interface and iSCSI transport |
| names for each NX2 device enumerated by the driver. Other enhancements |
| include cosmetic changes to README_iSCSI.txt file and the bnx2 driver |
| includes latest mips firmware. |
| |
| Version 1.0.03 (May 29, 2007) |
| ============================= |
| Fixes |
| ===== |
| 1. Problem: Cont00029452 - Linux iSCSI: Error messages seen during |
| login/logout on Equallogic target with v1.0.01 |
| Cause: iSCSI driver was attempting to do session recovery every time |
| it received a TCP FIN or RST from the remote peer. Actually |
| session recovery has to attempted only if the sess is in FFP state. |
| Change: checks are put in place to avoid any un-necessary recovery attempts |
| Impact: none |
| |
| 2. Problem: Cont00029655 - Linux ISCSI - Seeing error in the /var/log/messages |
| when connecting to Linux target |
| Cause: duplicate of Cont00029452 |
| Change: see notes for Cont00029452 |
| Impact: none |
| |
| 3. Problem: Cont00029662 - Linux iSCSI: Problem formatting EMC target |
| Cause: protocol violation (invalid LUN field in R2T PDU) by the target |
| Change: removed couple of strict protocol checking in MIPS firmware |
| Impact: might affect iSCSI protocol validation certifications, will |
| reinstate the checks once we have this fixed in the target end. |
| |
| 4. Problem: Cont00029690 - Linux iSCSI: Login attempt to 17th session causes |
| the 16th session to be dropped |
| Cause: 'cid_free_cnt' was not decremented after allocating a 'iscsi_cid' |
| from the free list. This caused false queue full condition even |
| when all the entries are allocated. |
| Change: 'cid_free_cnt' is properly updated while allocating iscsi_cid from |
| the free pool |
| Impact: driver will gracefully turn down request to open 17th connection |
| |
| 5. Problem: Cont00029535 - Linux iSCSI: iSCSI session drops and fails to recover |
| Cause: There was a diconnect between BD table allocation and what is advertised |
| to the SCSI layer. Driver was allocating BD table with max 32 entries |
| for each command and what was registered with SCSI-ML was a bigger value. |
| Change: Driver now allocates BD table of size equal to 'sg_tablesize' value |
| specified in scsi_host_template structure |
| Impact: None |
| |
| 6. Problem: Cont00029432 - Linux iSCSI: Does not automatically reconnect to |
| target after cable pull test |
| Cause: 'fdisk -l' will result in couple of read commands and these gets |
| queued up in the TX pipeline (retransmission queue) and firmware will |
| not complete CMD_CLEANUP requests for commands that have some entries |
| in the retransmission queue. Unless the number of CMD_CLEANUP requests |
| issued and responses that got completed match, driver will assume |
| connection can't be shutdown properly. |
| Change: Driver will teardown connection without cleaning up the commands |
| when needed and it is the right thing to do. |
| Impact: None |
| |
| |
| Bug fixes in other modules : |
| -------------------------- |
| a) Cont00029590 - Linux iSCSI: Unable to connect to iSCSI target on a |
| tagged vlan using offload iSCSI |
| Fixed in cnic driver - vlan was not supported by the option-2 |
| component of cnic driver. Code was added to support vlan tagging |
| and checking if the route to desitination is over a vlan interface. |
| cnic driver will set correct VLAN id while sending down option-2 |
| connect request. |
| b) Cont00029579 - Linux iSCSI: Running ethtool -t with target connected |
| causes kernel panic |
| Fixed in bnx2 driver - Asynchronous reset during self-test causes |
| the cnic driver to crash. The fix is to disallow offline selftest |
| when cnic driver is loaded. |
| |
| |
| Version 1.0.02 (May 22, 2007) |
| ============================= |
| Fixes |
| ===== |
| 1. Problem: Cont00029425 - Linux iSCSI: Issue when connecting to 16+ LUNs |
| Cause: RQ buffers replenish code was commented out. By default iSCSI QP |
| is created with 16 RQ buffers, so were we allowed to discover |
| 16 SCSI LUNs. For the 17th LUN firmware did not have RQ buffer |
| to place sense data. |
| Change: cleaned up RQ buffer replenish code |
| Impact: can connect to > 16 LUNs and run I/Os |
| |
| 2. Problem: Cont00029532 - Linux iSCSI: Running more than 64 outstanding I/Os |
| on multiple LUNs w/ disktest has issues |
| Cause: iSCSI initiator was not properly honoring the iSCSI Session Command |
| window presented by the target. Netapp is actually only providing |
| command window of 64 and once violated would drop the connection |
| via' REJECT and ASYNC messages. |
| Change: iSCSI driver is taking care of iSCSI command window correctly |
| |
| 3. Issues fixed in other modules - |
| a) Cont00029404 - Linux iSCSI: Unable to login to Cisco MDS 9216 |
| Fixed in chip software (MIPS firmware) - Wrong KCQE opcode was |
| due an error in error reporting mechanism. New FW version 3.7.1.A0 |
| fixes this. |
| |
| b) Cont00029415 - Linux iSCSI: HP target rejects NOP Out from our driver |
| Fixed in chip software (MIPS firmware) - The correct opcode is |
| sent to the wire now. Fixed in ver 3.7.1.A1 |
| |
| c) Cont00029542 - Linux iSCSI: Problem formatting Stringbean target |
| with ext3 file system |
| Fixed in chip software (MIPS firmware) - The problem was present |
| due to wrong error reporting mechanism in FW. This mechanism is |
| fixed in new FW version 3.7.1.A0 |
| |
| d) Cont00029571 - Linux iSCSI: Adding new session causes previous session |
| to be dropped on Equallogic |
| Fixed in chip software (MIPS firmware) - Wrong cam index handling |
| caused the wrong connection to be flushed away from cam while |
| removing other coonnection |
| |
| e) Cont00029579 - Linux iSCSI: Running ethtool -t with target connected |
| causes kernel panic |
| Fixed in bnx2 driver - Asynchronous reset during self-test causes |
| the cnic driver to crash. The fix is to disallow offline selftest |
| when cnic driver is loaded. |
| |
| f) Cont00029634 - Linux iSCSI: Changing MTU size w/ drivers loaded causes |
| kernel panic |
| Fixed in bnx2 driver - For now, the bnx2 driver will not permit |
| MTU changes after CNIC is loaded. To change the MTU, you need |
| to do so before loading the cnic driver. A better method will |
| be available in future versions. |
| |
| g) Cont00029366 - Linux iSCSI: Unable to connect to EMC AX100SCi |
| Fixed in chip software (MIPS firmware) - The bug is due to |
| target TCP protocol vioaltion (not our bug actually). |
| Now once we support window scale option - this issue is resolved. |
| |
| |
| Enhancements |
| ============ |
| Implemented bnx2i driver maintained iSCSI statistics (Cont00029583). |
| Some of the statistics counters are to be implemented by MIPS firmware |
| and the interface specification. Once those are in place Cont00029583 |
| will be resolved. Also default value of HC_COMP_PROD_TRIP is changed |
| from 0x00020004 to 0x00020008 to boost 2 port performance |
| |
| |
| Version 1.0.01 (May 08, 2007) |
| ============================= |
| Fixes |
| ===== |
| 1. Problem: Cont00029362 - Linux iSCSI: Proactive NOP Out not handled |
| by the driver |
| Cause: 'CmdSN' was not specified in nopout SQ WQE and was always |
| accompanied with cmdsn value of 0x0000000. Also NOPIN received |
| in response to Initiator's proactive NOPOUT was not propogated |
| to open-iscsi user daemon. |
| Change: correct 'cmdsn' is used while posting NOPOUT request to ship and |
| also code was added to send nopout pdu header to user daemon |
| Impact: NA |
| |
| 2. Problem: Cont00029416 - Linux iSCSI: Login/logout stress causes kernel panic |
| Cause: System crashed because of an issue in KCQ processing code in |
| the CNIC driver |
| Change: Refer to CNIC driver's release notes for further information |
| |
| Enhancements |
| ============ |
| None. |
| |
| |
| Version 1.0.00 (April 27, 2007) |
| =============================== |
| |
| Initial release to QA team. |
| |
| This release will support most iSCSI full feature operations including |
| 1. SCSI CMD, TMF, NOPIN, NOPOUT, ASYNC and LOGOUT |
| 2. REJECT is currently not supported |
| 3. All IO size from 512B to 512KB |
| |
| Driver unload and reload is also supported. This driver will work on Linux |
| Kernel 2.6.18 and 2.6.19 and open-iscsi software 2.0-724 or later is required |
| to make connections to iSCSI targets. iSCSI target discovery using 'SendTargets' |
| is the only one tested so far, but it should matter to bnx2i as complete |
| discovery is handled by the open-iscsi user code. |
| |
| Following targets were used during initial debugging stages and should be |
| fully supported - |
| 1. Equallogic PeerStorage PS100E |
| 2. Netapp Target - FAS250, FAS270 |
| 3. Linux Software Target - iET |
| 4. Microsoft's StringBean target, minimal validation by developers |