i, tx_ring->itr_setting,
                         ITR_IS_DYNAMIC(tx_ring->itr_setting) ? "dynamic" : "fixed");
        }
+       if (i40e_enabled_xdp_vsi(vsi)) {
+               for (i = 0; i < vsi->num_queue_pairs; i++) {
+                       struct i40e_ring *xdp_ring = READ_ONCE(vsi->xdp_rings[i]);
+
+                       if (!xdp_ring)
+                               continue;
+
+                       dev_info(&pf->pdev->dev,
+                                "    xdp_rings[%i]: state = %lu, queue_index = %d, reg_idx = %d\n",
+                                i, *xdp_ring->state,
+                                xdp_ring->queue_index,
+                                xdp_ring->reg_idx);
+                       dev_info(&pf->pdev->dev,
+                                "    xdp_rings[%i]: next_to_use = %d, next_to_clean = %d, ring_active = %i\n",
+                                i,
+                                xdp_ring->next_to_use,
+                                xdp_ring->next_to_clean,
+                                xdp_ring->ring_active);
+                       dev_info(&pf->pdev->dev,
+                                "    xdp_rings[%i]: tx_stats: packets = %lld, bytes = %lld, restart_queue = %lld\n",
+                                i, xdp_ring->stats.packets,
+                                xdp_ring->stats.bytes,
+                                xdp_ring->tx_stats.restart_queue);
+                       dev_info(&pf->pdev->dev,
+                                "    xdp_rings[%i]: tx_stats: tx_busy = %lld, tx_done_old = %lld\n",
+                                i,
+                                xdp_ring->tx_stats.tx_busy,
+                                xdp_ring->tx_stats.tx_done_old);
+                       dev_info(&pf->pdev->dev,
+                                "    xdp_rings[%i]: size = %i\n",
+                                i, xdp_ring->size);
+                       dev_info(&pf->pdev->dev,
+                                "    xdp_rings[%i]: DCB tc = %d\n",
+                                i, xdp_ring->dcb_tc);
+                       dev_info(&pf->pdev->dev,
+                                "    xdp_rings[%i]: itr_setting = %d (%s)\n",
+                                i, xdp_ring->itr_setting,
+                                ITR_IS_DYNAMIC(xdp_ring->itr_setting) ?
+                                "dynamic" : "fixed");
+               }
+       }
        rcu_read_unlock();
        dev_info(&pf->pdev->dev,
                 "    work_limit = %d\n",