]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
ib/mlx4: add msi-x allocation kernel msg logging
authorQing Huang <qing.huang@oracle.com>
Fri, 16 Dec 2016 00:03:58 +0000 (16:03 -0800)
committerDhaval Giani <dhaval.giani@oracle.com>
Mon, 23 Jan 2017 21:58:51 +0000 (16:58 -0500)
Kernel msg prints are added in the mlx4 driver when enabling msi-x
vectors during device initialization. This would help us to debug
issues when we encounter errors in this area on both bare metal and
VM.

Orabug: 25307234

Related Orabug: 2347901820597484

Signed-off-by: Qing Huang <qing.huang@oracle.com>
Reviewed-by: Santosh Shilimkar <santosh.shilimkar@oracle.com>
Reviewed-by: Yuval Shaia <yuval.shaia@oracle.com>
Signed-off-by: Dhaval Giani <dhaval.giani@oracle.com>
drivers/net/ethernet/mellanox/mlx4/main.c

index b0a8f8b5f7683be40ab958bc00e95a8593697655..1fb191ae4e4499d2c1d853b59462e911a0e6eb2f 100644 (file)
@@ -2639,10 +2639,10 @@ static void mlx4_enable_msi_x(struct mlx4_dev *dev)
 {
        struct mlx4_priv *priv = mlx4_priv(dev);
        struct msix_entry *entries;
-       int i;
+       int i, nreq = 0;
 
        if (msi_x) {
-               int nreq = dev->caps.num_ports * num_online_cpus() + MSIX_LEGACY_SZ;
+               nreq = dev->caps.num_ports * num_online_cpus() + MSIX_LEGACY_SZ;
 
                nreq = min_t(int, dev->caps.num_eqs - dev->caps.reserved_eqs,
                             nreq);
@@ -2657,6 +2657,9 @@ static void mlx4_enable_msi_x(struct mlx4_dev *dev)
                for (i = 0; i < nreq; ++i)
                        entries[i].entry = i;
 
+               mlx4_info(dev, "Enabling %d MSI-X vectors, eqs %d rsvd_eqs %d msi_x %d\n",
+                         nreq, dev->caps.num_eqs, dev->caps.reserved_eqs,
+                         msi_x);
                nreq = pci_enable_msix_range(dev->persist->pdev, entries, 2,
                                             nreq);
 
@@ -2676,12 +2679,16 @@ static void mlx4_enable_msi_x(struct mlx4_dev *dev)
                        priv->eq_table.eq[i].irq = entries[i].vector;
 
                dev->flags |= MLX4_FLAG_MSI_X;
+               mlx4_info(dev, "Successfully allocated %d MSI-X vectors, comp_pool %d\n",
+                         nreq, dev->caps.comp_pool);
 
                kfree(entries);
                return;
        }
 
 no_msi:
+       mlx4_info(dev, "No MSI-X vectors, nreq/errno %d msi_x %d\n",
+                 nreq, msi_x);
        dev->caps.num_comp_vectors = 1;
        dev->caps.comp_pool        = 0;