Lines Matching +full:dma +full:- +full:queues

1 // SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2 /* Copyright (C) 2015-2019 Netronome Systems, Inc. */
14 struct nfp_net_r_vector *r_vec = file->private; in nfp_rx_q_show()
24 if (!r_vec->nfp_net || !r_vec->rx_ring) in nfp_rx_q_show()
26 nn = r_vec->nfp_net; in nfp_rx_q_show()
27 rx_ring = r_vec->rx_ring; in nfp_rx_q_show()
31 rxd_cnt = rx_ring->cnt; in nfp_rx_q_show()
33 fl_rd_p = nfp_qcp_rd_ptr_read(rx_ring->qcp_fl); in nfp_rx_q_show()
34 fl_wr_p = nfp_qcp_wr_ptr_read(rx_ring->qcp_fl); in nfp_rx_q_show()
36 seq_printf(file, "RX[%02d,%02d]: cnt=%u dma=%pad host=%p H_RD=%u H_WR=%u FL_RD=%u FL_WR=%u\n", in nfp_rx_q_show()
37 rx_ring->idx, rx_ring->fl_qcidx, in nfp_rx_q_show()
38 rx_ring->cnt, &rx_ring->dma, rx_ring->rxds, in nfp_rx_q_show()
39 rx_ring->rd_p, rx_ring->wr_p, fl_rd_p, fl_wr_p); in nfp_rx_q_show()
42 rxd = &rx_ring->rxds[i]; in nfp_rx_q_show()
44 rxd->vals[0], rxd->vals[1]); in nfp_rx_q_show()
46 if (!r_vec->xsk_pool) { in nfp_rx_q_show()
47 frag = READ_ONCE(rx_ring->rxbufs[i].frag); in nfp_rx_q_show()
51 if (rx_ring->rxbufs[i].dma_addr) in nfp_rx_q_show()
53 &rx_ring->rxbufs[i].dma_addr); in nfp_rx_q_show()
55 if (rx_ring->xsk_rxbufs[i].dma_addr) in nfp_rx_q_show()
57 &rx_ring->xsk_rxbufs[i].dma_addr); in nfp_rx_q_show()
60 if (i == rx_ring->rd_p % rxd_cnt) in nfp_rx_q_show()
62 if (i == rx_ring->wr_p % rxd_cnt) in nfp_rx_q_show()
82 struct nfp_net_r_vector *r_vec = file->private; in nfp_tx_q_show()
89 if (debugfs_real_fops(file->file) == &nfp_tx_q_fops) in nfp_tx_q_show()
90 tx_ring = r_vec->tx_ring; in nfp_tx_q_show()
92 tx_ring = r_vec->xdp_ring; in nfp_tx_q_show()
93 if (!r_vec->nfp_net || !tx_ring) in nfp_tx_q_show()
95 nn = r_vec->nfp_net; in nfp_tx_q_show()
99 d_rd_p = nfp_qcp_rd_ptr_read(tx_ring->qcp_q); in nfp_tx_q_show()
100 d_wr_p = nfp_qcp_wr_ptr_read(tx_ring->qcp_q); in nfp_tx_q_show()
102 seq_printf(file, "TX[%02d,%02d%s]: cnt=%u dma=%pad host=%p H_RD=%u H_WR=%u D_RD=%u D_WR=%u", in nfp_tx_q_show()
103 tx_ring->idx, tx_ring->qcidx, in nfp_tx_q_show()
104 tx_ring == r_vec->tx_ring ? "" : "xdp", in nfp_tx_q_show()
105 tx_ring->cnt, &tx_ring->dma, tx_ring->txds, in nfp_tx_q_show()
106 tx_ring->rd_p, tx_ring->wr_p, d_rd_p, d_wr_p); in nfp_tx_q_show()
107 if (tx_ring->txrwb) in nfp_tx_q_show()
108 seq_printf(file, " TXRWB=%llu", *tx_ring->txrwb); in nfp_tx_q_show()
111 nfp_net_debugfs_print_tx_descs(file, &nn->dp, r_vec, tx_ring, in nfp_tx_q_show()
126 struct dentry *queues, *tx, *rx, *xdp; in nfp_net_debugfs_vnic_add() local
134 sprintf(name, "vnic%d", nn->id); in nfp_net_debugfs_vnic_add()
136 strcpy(name, "ctrl-vnic"); in nfp_net_debugfs_vnic_add()
137 nn->debugfs_dir = debugfs_create_dir(name, ddir); in nfp_net_debugfs_vnic_add()
139 /* Create queue debugging sub-tree */ in nfp_net_debugfs_vnic_add()
140 queues = debugfs_create_dir("queue", nn->debugfs_dir); in nfp_net_debugfs_vnic_add()
142 rx = debugfs_create_dir("rx", queues); in nfp_net_debugfs_vnic_add()
143 tx = debugfs_create_dir("tx", queues); in nfp_net_debugfs_vnic_add()
144 xdp = debugfs_create_dir("xdp", queues); in nfp_net_debugfs_vnic_add()
146 for (i = 0; i < min(nn->max_rx_rings, nn->max_r_vecs); i++) { in nfp_net_debugfs_vnic_add()
149 &nn->r_vecs[i], &nfp_rx_q_fops); in nfp_net_debugfs_vnic_add()
151 &nn->r_vecs[i], &nfp_xdp_q_fops); in nfp_net_debugfs_vnic_add()
154 for (i = 0; i < min(nn->max_tx_rings, nn->max_r_vecs); i++) { in nfp_net_debugfs_vnic_add()
157 &nn->r_vecs[i], &nfp_tx_q_fops); in nfp_net_debugfs_vnic_add()