Lines Matching refs:txq

1096 	struct sge_txq *txq;
1201 oid = SYSCTL_ADD_NODE(&vi->ctx, children, OID_AUTO, "txq", CTLFLAG_RD,
1203 for_each_txq(vi, i, txq) {
1205 snprintf(name, sizeof(name), "%s txq%d",
1207 init_eq(sc, &txq->eq, EQ_ETH, vi->qsize_txq, pi->tx_chan,
1210 rc = alloc_txq(vi, txq, i, oid);
1250 struct sge_txq *txq;
1287 for_each_txq(vi, i, txq) {
1288 free_txq(vi, txq);
2558 struct sge_txq *txq = r->cookie;
2559 struct sge_eq *eq = &txq->eq;
2560 struct ifnet *ifp = txq->ifp;
2575 TXQ_LOCK(txq);
2583 reclaim_tx_descs(txq, 2048);
2602 available += reclaim_tx_descs(txq, 64);
2616 n = write_txpkt_vm_wr(sc, txq, (void *)wr, m0,
2643 n = write_txpkts_wr(txq, wr, m0, &txp, available);
2650 n = write_txpkt_wr(txq, (void *)wr, m0, available);
2670 available += reclaim_tx_descs(txq, 4 * dbdiff);
2678 reclaim_tx_descs(txq, 32);
2681 TXQ_UNLOCK(txq);
3749 alloc_txq(struct vi_info *vi, struct sge_txq *txq, int idx,
3755 struct sge_eq *eq = &txq->eq;
3759 rc = mp_ring_alloc(&txq->r, eq->sidx, txq, eth_tx, can_resume_eth_tx,
3768 mp_ring_free(txq->r);
3769 txq->r = NULL;
3783 TASK_INIT(&txq->tx_reclaim_task, 0, tx_reclaim, eq);
3784 txq->ifp = vi->ifp;
3785 txq->gl = sglist_alloc(TX_SGL_SEGS, M_WAITOK);
3787 txq->cpl_ctrl0 = htobe32(V_TXPKT_OPCODE(CPL_TX_PKT_XT) |
3790 txq->cpl_ctrl0 = htobe32(V_TXPKT_OPCODE(CPL_TX_PKT) |
3793 txq->tc_idx = -1;
3794 txq->sdesc = malloc(eq->sidx * sizeof(struct tx_sdesc), M_CXGBE,
3825 &txq->txcsum, "# of times hardware assisted with checksum");
3827 CTLFLAG_RD, &txq->vlan_insertion,
3830 &txq->tso_wrs, "# of TSO work requests");
3832 &txq->imm_wrs, "# of work requests with immediate data");
3834 &txq->sgl_wrs, "# of work requests with direct SGL");
3836 &txq->txpkt_wrs, "# of txpkt work requests (one pkt/WR)");
3838 CTLFLAG_RD, &txq->txpkts0_wrs,
3841 CTLFLAG_RD, &txq->txpkts1_wrs,
3844 CTLFLAG_RD, &txq->txpkts0_pkts,
3847 CTLFLAG_RD, &txq->txpkts1_pkts,
3851 CTLFLAG_RD, &txq->r->enqueues,
3854 CTLFLAG_RD, &txq->r->drops,
3857 CTLFLAG_RD, &txq->r->starts,
3860 CTLFLAG_RD, &txq->r->stalls,
3863 CTLFLAG_RD, &txq->r->restarts,
3866 CTLFLAG_RD, &txq->r->abdications,
3873 free_txq(struct vi_info *vi, struct sge_txq *txq)
3877 struct sge_eq *eq = &txq->eq;
3883 sglist_free(txq->gl);
3884 free(txq->sdesc, M_CXGBE);
3885 mp_ring_free(txq->r);
3887 bzero(txq, sizeof(*txq));
4224 write_txpkt_vm_wr(struct adapter *sc, struct sge_txq *txq,
4227 struct sge_eq *eq = &txq->eq;
4235 TXQ_LOCK_ASSERT_OWNED(txq);
4297 txq->tso_wrs++;
4354 txq->txcsum++; /* some hardware assistance provided */
4360 txq->vlan_insertion++;
4364 cpl->ctrl0 = txq->cpl_ctrl0;
4381 write_gl_to_txd(txq, m0, &dst, 0);
4383 write_gl_to_txd(txq, m0, &dst, eq->sidx - ndesc < eq->pidx);
4384 txq->sgl_wrs++;
4386 txq->txpkt_wrs++;
4388 txsd = &txq->sdesc[eq->pidx];
4403 write_txpkt_wr(struct sge_txq *txq, struct fw_eth_tx_pkt_wr *wr,
4406 struct sge_eq *eq = &txq->eq;
4414 TXQ_LOCK_ASSERT_OWNED(txq);
4467 txq->tso_wrs++;
4479 txq->txcsum++; /* some hardware assistance provided */
4484 txq->vlan_insertion++;
4488 cpl->ctrl0 = txq->cpl_ctrl0;
4497 write_gl_to_txd(txq, m0, &dst, eq->sidx - ndesc < eq->pidx);
4498 txq->sgl_wrs++;
4511 txq->imm_wrs++;
4514 txq->txpkt_wrs++;
4516 txsd = &txq->sdesc[eq->pidx];
4596 write_txpkts_wr(struct sge_txq *txq, struct fw_eth_tx_pkts_wr *wr,
4599 struct sge_eq *eq = &txq->eq;
4608 TXQ_LOCK_ASSERT_OWNED(txq);
4668 txq->txcsum++; /* some hardware assistance provided */
4674 txq->vlan_insertion++;
4678 cpl->ctrl0 = txq->cpl_ctrl0;
4688 write_gl_to_txd(txq, m, (caddr_t *)(&flitp), checkwrap);
4693 txq->txpkts0_pkts += txp->npkt;
4694 txq->txpkts0_wrs++;
4696 txq->txpkts1_pkts += txp->npkt;
4697 txq->txpkts1_wrs++;
4700 txsd = &txq->sdesc[eq->pidx];
4712 write_gl_to_txd(struct sge_txq *txq, struct mbuf *m, caddr_t *to, int checkwrap)
4714 struct sge_eq *eq = &txq->eq;
4715 struct sglist *gl = txq->gl;
4896 reclaim_tx_descs(struct sge_txq *txq, u_int n)
4899 struct sge_eq *eq = &txq->eq;
4902 TXQ_LOCK_ASSERT_OWNED(txq);
4911 txsd = &txq->sdesc[eq->cidx];
4938 struct sge_txq *txq = arg;
4939 struct sge_eq *eq = &txq->eq;
4942 if (TXQ_TRYLOCK(txq) == 0)
4944 n = reclaim_tx_descs(txq, 32);
4947 TXQ_UNLOCK(txq);
5176 struct sge_txq *txq = (void *)eq;
5181 mp_ring_check_drainage(txq->r, 0);
5182 taskqueue_enqueue(sc->tq[eq->tx_chan], &txq->tx_reclaim_task);