Lines Matching refs:kring
768 static int netmap_fl_refill(iflib_rxq_t rxq, struct netmap_kring *kring, bool init);
858 netmap_fl_refill(iflib_rxq_t rxq, struct netmap_kring *kring, bool init) in netmap_fl_refill() argument
860 struct netmap_adapter *na = kring->na; in netmap_fl_refill()
861 u_int const lim = kring->nkr_num_slots - 1; in netmap_fl_refill()
862 struct netmap_ring *ring = kring->ring; in netmap_fl_refill()
891 n = kring->nkr_num_slots - nm_kr_rxspace(kring); in netmap_fl_refill()
893 n = kring->rhead - kring->nr_hwcur; in netmap_fl_refill()
897 n += kring->nkr_num_slots; in netmap_fl_refill()
903 nm_i = netmap_idx_n2k(kring, nic_i); in netmap_fl_refill()
910 MPASS(nm_i == kring->nr_hwtail); in netmap_fl_refill()
912 MPASS(nm_i == kring->nr_hwcur); in netmap_fl_refill()
928 return (netmap_ring_reinit(kring)); in netmap_fl_refill()
931 nm_get_offset(kring, slot); in netmap_fl_refill()
959 MPASS(nm_i == kring->rhead); in netmap_fl_refill()
960 kring->nr_hwcur = nm_i; in netmap_fl_refill()
988 iflib_netmap_txsync(struct netmap_kring *kring, int flags) in iflib_netmap_txsync() argument
990 struct netmap_adapter *na = kring->na; in iflib_netmap_txsync()
992 struct netmap_ring *ring = kring->ring; in iflib_netmap_txsync()
995 u_int const lim = kring->nkr_num_slots - 1; in iflib_netmap_txsync()
996 u_int const head = kring->rhead; in iflib_netmap_txsync()
1004 u_int report_frequency = kring->nkr_num_slots >> 1; in iflib_netmap_txsync()
1007 iflib_txq_t txq = &ctx->ifc_txqs[kring->ring_id]; in iflib_netmap_txsync()
1034 nm_i = kring->nr_hwcur; in iflib_netmap_txsync()
1040 pi.ipi_qsidx = kring->ring_id; in iflib_netmap_txsync()
1041 nic_i = netmap_idx_k2n(kring, nm_i); in iflib_netmap_txsync()
1049 uint64_t offset = nm_get_offset(kring, slot); in iflib_netmap_txsync()
1113 kring->nr_hwcur = nm_i; in iflib_netmap_txsync()
1130 if (kring->nr_hwtail != nm_prev(kring->nr_hwcur, lim)) { in iflib_netmap_txsync()
1134 kring->nr_hwtail = nm_prev(netmap_idx_n2k(kring, nic_i), lim); in iflib_netmap_txsync()
1139 if (kring->nr_hwtail != nm_prev(kring->nr_hwcur, lim)) { in iflib_netmap_txsync()
1166 iflib_netmap_rxsync(struct netmap_kring *kring, int flags) in iflib_netmap_rxsync() argument
1168 struct netmap_adapter *na = kring->na; in iflib_netmap_rxsync()
1169 struct netmap_ring *ring = kring->ring; in iflib_netmap_rxsync()
1174 u_int const lim = kring->nkr_num_slots - 1; in iflib_netmap_rxsync()
1175 int force_update = (flags & NAF_FORCE_READ) || kring->nr_kflags & NKR_PENDINTR; in iflib_netmap_rxsync()
1181 iflib_rxq_t rxq = &ctx->ifc_rxqs[kring->ring_id]; in iflib_netmap_rxsync()
1211 uint32_t hwtail_lim = nm_prev(kring->nr_hwcur, lim); in iflib_netmap_rxsync()
1228 nm_i = netmap_idx_n2k(kring, nic_i); in iflib_netmap_rxsync()
1229 MPASS(nm_i == kring->nr_hwtail); in iflib_netmap_rxsync()
1233 ri.iri_qsidx = kring->ring_id; in iflib_netmap_rxsync()
1274 kring->nr_hwtail = nm_i; in iflib_netmap_rxsync()
1276 kring->nr_kflags &= ~NKR_PENDINTR; in iflib_netmap_rxsync()
1286 netmap_fl_refill(rxq, kring, false); in iflib_netmap_rxsync()
1360 struct netmap_kring *kring; in iflib_netmap_rxq_init() local
1366 kring = na->rx_rings[rxq->ifr_id]; in iflib_netmap_rxq_init()
1367 netmap_fl_refill(rxq, kring, true); in iflib_netmap_rxq_init()