qed: Update TCP silly-window-syndrome timeout for iwarp, scsi
authorNikolay Assa <nassa@marvell.com>
Mon, 4 Oct 2021 06:58:49 +0000 (09:58 +0300)
committerDavid S. Miller <davem@davemloft.net>
Mon, 4 Oct 2021 11:55:49 +0000 (12:55 +0100)
Update TCP silly-window-syndrome timeout, for the cases where
initiator's small TCP window size prevents FW from transmitting
packets on the connection. Timeout causes FW to retransmit
window probes if needed, preventing I/O stall if initiator ignores
first window probe.

Reviewed-by: Manish Rangankar <mrangankar@marvell.com>
Signed-off-by: Nikolay Assa <nassa@marvell.com>
Signed-off-by: Ariel Elior <aelior@marvell.com>
Signed-off-by: Shai Malin <smalin@marvell.com>
Signed-off-by: Omkar Kulkarni <okulkarni@marvell.com>
Signed-off-by: Prabhakar Kushwaha <pkushwaha@marvell.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/qlogic/qed/qed_iwarp.c
drivers/scsi/qedi/qedi_main.c
include/linux/qed/qed_if.h

index 186d0048a9d14e924ed84e9e8a4498f3d0c459c7..b2c0e522e51fccd4b4befa145a41d883dc190311 100644 (file)
@@ -114,6 +114,7 @@ qed_iwarp_init_fw_ramrod(struct qed_hwfn *p_hwfn,
            RESC_START(p_hwfn, QED_LL2_RAM_QUEUE) +
            p_hwfn->p_rdma_info->iwarp.ll2_ooo_handle;
 
+       p_ramrod->tcp.tx_sws_timer = cpu_to_le16(QED_TX_SWS_TIMER_DFLT);
        p_ramrod->tcp.max_fin_rt = QED_IWARP_MAX_FIN_RT_DEFAULT;
 
        return;
index fe36ddb82aef57453c68498b1048ce0a9cf7f4a9..8c2f32655424b57dda51fd84a24cf6694794f3d3 100644 (file)
@@ -866,6 +866,7 @@ static int qedi_set_iscsi_pf_param(struct qedi_ctx *qedi)
        qedi->pf_params.iscsi_pf_params.num_queues = qedi->num_queues;
        qedi->pf_params.iscsi_pf_params.debug_mode = qedi_fw_debug;
        qedi->pf_params.iscsi_pf_params.two_msl_timer = 4000;
+       qedi->pf_params.iscsi_pf_params.tx_sws_timer = QED_TX_SWS_TIMER_DFLT;
        qedi->pf_params.iscsi_pf_params.max_fin_rt = 2;
 
        for (log_page_size = 0 ; log_page_size < 32 ; log_page_size++) {
index 4dcd0d37a521e84212620158ab9b51ea4dbd26d6..07f8d19421abcd766e3db4a5c22cb4dc6a90af85 100644 (file)
@@ -24,6 +24,8 @@
 #include <linux/io-64-nonatomic-lo-hi.h>
 #include <net/devlink.h>
 
+#define QED_TX_SWS_TIMER_DFLT  500
+
 enum dcbx_protocol_type {
        DCBX_PROTOCOL_ISCSI,
        DCBX_PROTOCOL_FCOE,