Home | History | Annotate | Download | only in pci

Lines Matching defs:rxq

1079 	struct vmxnet3_rxqueue *rxq;
1094 rxq = &vmxq->vxq_rxqueue;
1095 rxs = rxq->vxrxq_rs;
1129 struct vmxnet3_rxqueue *rxq;
1133 rxq = &sc->vmx_queue[q].vxq_rxqueue;
1135 snprintf(rxq->vxrxq_name, sizeof(rxq->vxrxq_name), "%s-rx%d",
1137 rxq->vxrxq_mtx = mutex_obj_alloc(MUTEX_DEFAULT, IPL_NET /* XXX */);
1139 rxq->vxrxq_sc = sc;
1142 rxr = &rxq->vxrxq_cmd_ring[i];
1148 rxq->vxrxq_comp_ring.vxcr_ndesc += sc->vmx_nrxdescs;
1151 rxq->vxrxq_stopping = true;
1241 vmxnet3_destroy_rxq(struct vmxnet3_rxqueue *rxq)
1246 rxq->vxrxq_sc = NULL;
1249 rxr = &rxq->vxrxq_cmd_ring[i];
1258 if (rxq->vxrxq_mtx != NULL)
1259 mutex_obj_free(rxq->vxrxq_mtx);
1475 struct vmxnet3_rxqueue *rxq;
1485 rxq = &sc->vmx_queue[q].vxq_rxqueue;
1486 rxc = &rxq->vxrxq_comp_ring;
1490 rxr = &rxq->vxrxq_cmd_ring[i];
1519 rxr = &rxq->vxrxq_cmd_ring[i];
1552 struct vmxnet3_rxqueue *rxq;
1560 rxq = &sc->vmx_queue[q].vxq_rxqueue;
1561 rxc = &rxq->vxrxq_comp_ring;
1564 rxr = &rxq->vxrxq_cmd_ring[i];
1588 rxr = &rxq->vxrxq_cmd_ring[i];
1655 struct vmxnet3_rxqueue *rxq;
1721 rxq = &sc->vmx_queue[i].vxq_rxqueue;
1722 rxs = rxq->vxrxq_rs;
1724 rxs->cmd_ring[0] = rxq->vxrxq_cmd_ring[0].vxrxr_dma.dma_paddr;
1725 rxs->cmd_ring_len[0] = rxq->vxrxq_cmd_ring[0].vxrxr_ndesc;
1726 rxs->cmd_ring[1] = rxq->vxrxq_cmd_ring[1].vxrxr_dma.dma_paddr;
1727 rxs->cmd_ring_len[1] = rxq->vxrxq_cmd_ring[1].vxrxr_ndesc;
1728 rxs->comp_ring = rxq->vxrxq_comp_ring.vxcr_dma.dma_paddr;
1729 rxs->comp_ring_len = rxq->vxrxq_comp_ring.vxcr_ndesc;
1730 rxs->driver_data = vtophys(rxq);
1966 struct vmxnet3_rxqueue *rxq;
1992 rxq = &vmxq->vxq_rxqueue;
1993 evcnt_attach_dynamic(&rxq->vxrxq_intr, EVCNT_TYPE_INTR,
1994 NULL, rxq->vxrxq_name, "Interrupt on queue");
1995 evcnt_attach_dynamic(&rxq->vxrxq_defer, EVCNT_TYPE_MISC,
1996 NULL, rxq->vxrxq_name, "Handled queue in softint/workqueue");
1997 evcnt_attach_dynamic(&rxq->vxrxq_deferreq, EVCNT_TYPE_MISC,
1998 NULL, rxq->vxrxq_name, "Requested in softint/workqueue");
1999 evcnt_attach_dynamic(&rxq->vxrxq_mgetcl_failed, EVCNT_TYPE_MISC,
2000 NULL, rxq->vxrxq_name, "MCLGET failed");
2001 evcnt_attach_dynamic(&rxq->vxrxq_mbuf_load_failed, EVCNT_TYPE_MISC,
2002 NULL, rxq->vxrxq_name, "bus_dmamap_load_mbuf failed");
2026 struct vmxnet3_rxqueue *rxq;
2044 rxq = &vmxq->vxq_rxqueue;
2045 evcnt_detach(&rxq->vxrxq_intr);
2046 evcnt_detach(&rxq->vxrxq_defer);
2047 evcnt_detach(&rxq->vxrxq_deferreq);
2048 evcnt_detach(&rxq->vxrxq_mgetcl_failed);
2049 evcnt_detach(&rxq->vxrxq_mbuf_load_failed);
2183 vmxnet3_newbuf(struct vmxnet3_softc *sc, struct vmxnet3_rxqueue *rxq,
2210 rxq->vxrxq_mgetcl_failed.ev_count++;
2221 rxq->vxrxq_mbuf_load_failed.ev_count++;
2246 vmxnet3_rxq_eof_discard(struct vmxnet3_rxqueue *rxq,
2257 vmxnet3_rxq_discard_chain(struct vmxnet3_rxqueue *rxq)
2265 sc = rxq->vxrxq_sc;
2266 rxc = &rxq->vxrxq_comp_ring;
2282 rxr = &rxq->vxrxq_cmd_ring[0];
2284 rxr = &rxq->vxrxq_cmd_ring[1];
2285 vmxnet3_rxq_eof_discard(rxq, rxr, idx);
2320 vmxnet3_rxq_input(struct vmxnet3_rxqueue *rxq,
2326 sc = rxq->vxrxq_sc;
2349 vmxnet3_rxq_eof(struct vmxnet3_rxqueue *rxq, u_int limit)
2361 sc = rxq->vxrxq_sc;
2363 rxc = &rxq->vxrxq_comp_ring;
2365 VMXNET3_RXQ_LOCK_ASSERT(rxq);
2367 if (rxq->vxrxq_stopping)
2370 m_head = rxq->vxrxq_mhead;
2371 rxq->vxrxq_mhead = NULL;
2372 m_tail = rxq->vxrxq_mtail;
2373 rxq->vxrxq_mtail = NULL;
2384 rxq->vxrxq_mhead = m_head;
2385 rxq->vxrxq_mtail = m_tail;
2398 rxr = &rxq->vxrxq_cmd_ring[0];
2400 rxr = &rxq->vxrxq_cmd_ring[1];
2423 KASSERT(rxr == &rxq->vxrxq_cmd_ring[0]);
2429 vmxnet3_rxq_eof_discard(rxq, rxr, idx);
2433 if (vmxnet3_newbuf(sc, rxq, rxr) != 0) {
2435 vmxnet3_rxq_eof_discard(rxq, rxr, idx);
2437 vmxnet3_rxq_discard_chain(rxq);
2452 if (vmxnet3_newbuf(sc, rxq, rxr) != 0) {
2454 vmxnet3_rxq_eof_discard(rxq, rxr, idx);
2456 vmxnet3_rxq_discard_chain(rxq);
2469 vmxnet3_rxq_input(rxq, rxcd, m_head);
2473 if (rxq->vxrxq_stopping)
2478 if (__predict_false(rxq->vxrxq_rs->update_rxhead)) {
2520 struct vmxnet3_rxqueue *rxq;
2527 rxq = &vmxq->vxq_rxqueue;
2545 VMXNET3_RXQ_LOCK(rxq);
2546 rxmore = vmxnet3_rxq_eof(rxq, rxlimit);
2547 VMXNET3_RXQ_UNLOCK(rxq);
2565 struct vmxnet3_rxqueue *rxq;
2571 rxq = &vmxq->vxq_rxqueue;
2585 VMXNET3_RXQ_LOCK(rxq);
2586 rxq->vxrxq_intr.ev_count++;
2587 rxmore = vmxnet3_rxq_eof(rxq, rxlimit);
2588 VMXNET3_RXQ_UNLOCK(rxq);
2610 struct vmxnet3_rxqueue *rxq;
2616 rxq = &vmxq->vxq_rxqueue;
2632 VMXNET3_RXQ_LOCK(rxq);
2633 rxq->vxrxq_defer.ev_count++;
2634 rxmore = vmxnet3_rxq_eof(rxq, rxlimit);
2636 rxq->vxrxq_deferreq.ev_count++;
2637 VMXNET3_RXQ_UNLOCK(rxq);
2700 vmxnet3_rxstop(struct vmxnet3_softc *sc, struct vmxnet3_rxqueue *rxq)
2706 if (rxq->vxrxq_mhead != NULL) {
2707 m_freem(rxq->vxrxq_mhead);
2708 rxq->vxrxq_mhead = NULL;
2709 rxq->vxrxq_mtail = NULL;
2713 rxr = &rxq->vxrxq_cmd_ring[i];
2734 struct vmxnet3_rxqueue *rxq;
2740 rxq = &sc->vmx_queue[i].vxq_rxqueue;
2741 VMXNET3_RXQ_LOCK(rxq);
2742 rxq->vxrxq_stopping = true;
2743 VMXNET3_RXQ_UNLOCK(rxq);
2819 vmxnet3_rxinit(struct vmxnet3_softc *sc, struct vmxnet3_rxqueue *rxq)
2830 rxr = &rxq->vxrxq_cmd_ring[i];
2837 error = vmxnet3_newbuf(sc, rxq, rxr);
2844 rxr = &rxq->vxrxq_cmd_ring[i];
2851 rxc = &rxq->vxrxq_comp_ring;