]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
xsigo: SKB Frag cleanup
authorPradeep Gopanapalli <pradeep.gopanapalli@oracle.com>
Tue, 12 Jul 2016 20:17:29 +0000 (13:17 -0700)
committerChuck Anderson <chuck.anderson@oracle.com>
Tue, 12 Jul 2016 20:17:29 +0000 (13:17 -0700)
Orabug: 23514725

Fixed pre-allocating transmit scatter gather lists by using
max_sge variable instead of MAX_SKB_FRAGS

some changes to prints

Signed-off-by: Pradeep Gopanapalli <pradeep.gopanapalli@oracle.com>
Reviewed-by: sajid zia <szia@oracle.com>
Reviewed-by: Yuval Shaia <yuval.shaia@oracle.com>
drivers/infiniband/ulp/xsigo/xscore/Makefile
drivers/infiniband/ulp/xsigo/xsvhba/Makefile
drivers/infiniband/ulp/xsigo/xsvnic/Makefile
drivers/infiniband/ulp/xsigo/xve/Makefile
drivers/infiniband/ulp/xsigo/xve/xve.h
drivers/infiniband/ulp/xsigo/xve/xve_cm.c
drivers/infiniband/ulp/xsigo/xve/xve_ib.c
drivers/infiniband/ulp/xsigo/xve/xve_main.c
drivers/infiniband/ulp/xsigo/xve/xve_stats.c
drivers/infiniband/ulp/xsigo/xve/xve_verbs.c

index 00721312de468178705410bbf981aecb214462f7..8f1555fbc2ed35966465e7c21c7136e2fe47e276 100644 (file)
@@ -2,7 +2,7 @@ obj-$(CONFIG_INFINIBAND_XSCORE) := xscore.o
 xscore-y := xscore_impl.o xs_ud.o xscore_api.o xsmp.o \
            xscore_stats.o xscore_uadm.o
 
-ccflags-y += -DXSIGO_LOCAL_VERSION=\"6.0.r8016\"
+ccflags-y += -DXSIGO_LOCAL_VERSION=\"6.0.r8020\"
 ccflags-y += -DRDMA_PORT_LINK_LAYER_CHANGES -DHAS_SKB_ACCESS_FUNCTIONS
 ccflags-y += -DSCSI_STRUCT_CHANGES -DSCSI_TIMEOUT_CHANGES -DLLE
 ccflags-y += -DXG_FRAG_SIZE_PRESENT -DXG_FRAG_PAGE_PRESENT
index a97d7a15e761c62701e0ad2eac606b3cb48ce758..d6f358fb99edd96cfb38dd25bed11ce064cc6478 100644 (file)
@@ -3,7 +3,7 @@ xsvhba-y := vhba_main.o vhba_xsmp.o vhba_create.o vhba_init.o vhba_delete.o \
            vhba_attr.o vhba_wq.o vhba_proc.o vhba_stats.o vhba_ib.o        \
            vhba_scsi_intf.o vhba_align.o
 
-ccflags-y += -DXSIGO_LOCAL_VERSION=\"6.0.r8016\"
+ccflags-y += -DXSIGO_LOCAL_VERSION=\"6.0.r8020\"
 ccflags-y += -DRDMA_PORT_LINK_LAYER_CHANGES -DHAS_SKB_ACCESS_FUNCTIONS
 ccflags-y += -DSCSI_STRUCT_CHANGES -DSCSI_TIMEOUT_CHANGES -DLLE
 ccflags-y += -DXG_FRAG_SIZE_PRESENT -DXG_FRAG_PAGE_PRESENT
index 5f853927ff3069b670c1579422031e468bca16be..abfb935168cb959435242c23f230ed8f797a3fe5 100644 (file)
@@ -1,7 +1,7 @@
 obj-$(CONFIG_INFINIBAND_XSVNIC) := xsvnic.o
 xsvnic-y := xsvnic_main.o xsvnic_stats.o
 
-ccflags-y += -DXSIGO_LOCAL_VERSION=\"6.0.r8016\"
+ccflags-y += -DXSIGO_LOCAL_VERSION=\"6.0.r8020\"
 ccflags-y += -DRDMA_PORT_LINK_LAYER_CHANGES -DHAS_SKB_ACCESS_FUNCTIONS
 ccflags-y += -DSCSI_STRUCT_CHANGES -DSCSI_TIMEOUT_CHANGES -DLLE
 ccflags-y += -DXG_FRAG_SIZE_PRESENT -DXG_FRAG_PAGE_PRESENT
index be33126eff94756d936ed164606463d9677b9a87..ead4db3c496b86b906e641276d2516dc5bc7f46d 100644 (file)
@@ -2,7 +2,7 @@ obj-$(CONFIG_INFINIBAND_XVE) := xve.o
 xve-y := xve_main.o xve_verbs.o xve_multicast.o xve_ib.o xve_tables.o \
         xve_ethtool.o xve_cm.o xve_stats.o
 
-ccflags-y += -DXSIGO_LOCAL_VERSION=\"6.0.r8016\"
+ccflags-y += -DXSIGO_LOCAL_VERSION=\"6.0.r8020\"
 ccflags-y += -DRDMA_PORT_LINK_LAYER_CHANGES -DHAS_SKB_ACCESS_FUNCTIONS
 ccflags-y += -DSCSI_STRUCT_CHANGES -DSCSI_TIMEOUT_CHANGES -DLLE
 ccflags-y += -DXG_FRAG_SIZE_PRESENT -DXG_FRAG_PAGE_PRESENT
index c30038d1df2e081a8beea65330485128caa64e6c..f2b0f8273dec5c55c4934f6ecaaa38c01cf29fa5 100644 (file)
@@ -173,6 +173,7 @@ enum {
        XVE_MAX_LRO_DESCRIPTORS = 8,
        XVE_LRO_MAX_AGGR = 64,
        MAX_SEND_CQE = 32,
+       SENDQ_LOW_WMARK = 32,
        XVE_CM_COPYBREAK = 256,
 };
 
index 5d2cc4d689f263e7c3c636d877eb20c818a97980..b6a6d1c0e328d7664cca4904a5df23ed0181a50e 100644 (file)
@@ -541,7 +541,7 @@ void xve_cm_handle_rx_wc(struct net_device *dev, struct ib_wc *wc)
                if (!test_bit(XVE_DELETING, &priv->state)) {
                        pr_err("%s: cm recv error", priv->xve_name);
                        pr_err("(status=%d, wrid=%d", wc->status, wr_id);
-                       pr_err("vend_err 0x%x)\n", wc->vendor_err);
+                       pr_err("vend_err %x)\n", wc->vendor_err);
                }
                INC_RX_DROP_STATS(priv, dev);
                goto repost;
@@ -754,7 +754,7 @@ void xve_cm_handle_tx_wc(struct net_device *dev,
 
        if (wc->status != IB_WC_SUCCESS && wc->status != IB_WC_WR_FLUSH_ERR) {
                pr_err("%s: failed cm send event ", priv->xve_name);
-               pr_err("(status=%d, wrid=%d vend_err 0x%x)\n",
+               pr_err("(status=%d, wrid=%d vend_err %x)\n",
                       wc->status, wr_id, wc->vendor_err);
                xve_cm_destroy_tx_deferred(tx);
        }
index 1266e752db2fb905f625002539379de5b35cc203..f1e1403b1a39dac8bac19d0c7c417c24a04899aa 100644 (file)
@@ -831,7 +831,7 @@ int xve_send(struct net_device *dev, struct sk_buff *skb,
                ++priv->tx_head;
 
        priv->send_hbeat_flag = 0;
-       if (unlikely(priv->tx_outstanding > MAX_SEND_CQE))
+       if (unlikely(priv->tx_outstanding > SENDQ_LOW_WMARK))
                poll_tx(priv);
        return ret;
 }
index 3f390e1b98101e8af0d9791d19819894b2013d2c..5f69a209877092d658553ad8daf3d33c8ac7e07d 100644 (file)
@@ -1625,7 +1625,7 @@ static int xve_state_machine(struct xve_dev_priv *priv)
                if (priv->send_hbeat_flag) {
                        unsigned long flags = 0;
 
-                       if (unlikely(priv->tx_outstanding > MAX_SEND_CQE)) {
+                       if (unlikely(priv->tx_outstanding > SENDQ_LOW_WMARK)) {
                                netif_tx_lock(priv->netdev);
                                spin_lock_irqsave(&priv->lock, flags);
                                poll_tx(priv);
@@ -1735,9 +1735,8 @@ xve_set_ovn_features(struct xve_dev_priv *priv)
        if (priv->lro_mode && lro) {
                priv->netdev->features |= NETIF_F_LRO;
                xve_lro_setup(priv);
-       } else {
+       } else
                priv->lro_mode = 0;
-       }
 }
 
 void
@@ -1762,9 +1761,8 @@ xve_set_edr_features(struct xve_dev_priv *priv)
        if (priv->lro_mode && lro) {
                priv->netdev->features |= NETIF_F_LRO;
                xve_lro_setup(priv);
-       } else {
+       } else
                priv->lro_mode = 0;
-       }
 
        /* Reserve extra space for EoIB header */
        priv->netdev->hard_header_len += sizeof(struct xve_eoib_hdr);
index 1401762c9c760864c9f49c198c15948f54ea8c77..f449ebe6c9ce89ffb659c20459d461afa0523bc4 100755 (executable)
@@ -460,8 +460,8 @@ static int xve_proc_read_device(struct seq_file *m, void *data)
        seq_printf(m, "SG UD Mode:\t\t\t%d\n", xve_ud_need_sg(vp->admin_mtu));
        seq_printf(m, "Max SG supported(HCA):\t\t%d\n", vp->dev_attr.max_sge);
 
-       seq_printf(m, "Receive Queue size: \t\t%d\n", xve_recvq_size);
-       seq_printf(m, "Transmit Queue size: \t\t%d\n", xve_sendq_size);
+       seq_printf(m, "Receive Queue size: \t\t%d\n", vp->xve_recvq_size);
+       seq_printf(m, "Transmit Queue size: \t\t%d\n", vp->xve_sendq_size);
 
        if (vp->cm_supported) {
                seq_printf(m, "Num of cm frags: \t\t%d\n", vp->cm.num_frags);
index 9cfbfc76223cca8b98de7c1bfd9eb7593951ed29..a78e65f6b8eb398c1aa76fff3be66a1f6a283e12 100644 (file)
@@ -142,7 +142,7 @@ int xve_transport_dev_init(struct net_device *dev, struct ib_device *ca)
                .qp_type = IB_QPT_UD
        };
        struct ethtool_coalesce *coal;
-       int ret, size, max_sge;
+       int ret, size, max_sge = MAX_SKB_FRAGS + 1;
        int i;
 
        priv->pd = ib_alloc_pd(priv->ca);
@@ -223,7 +223,7 @@ int xve_transport_dev_init(struct net_device *dev, struct ib_device *ca)
                goto out_free_send_cq;
        }
 
-       for (i = 0; i < MAX_SKB_FRAGS + 1; ++i)
+       for (i = 0; i < max_sge; ++i)
                priv->tx_sge[i].lkey = priv->mr->lkey;
 
        priv->tx_wr.opcode = IB_WR_SEND;