Lines Matching refs:kring
769 static int netmap_fl_refill(iflib_rxq_t rxq, struct netmap_kring *kring, bool init);
859 netmap_fl_refill(iflib_rxq_t rxq, struct netmap_kring *kring, bool init) in netmap_fl_refill() argument
861 struct netmap_adapter *na = kring->na; in netmap_fl_refill()
862 u_int const lim = kring->nkr_num_slots - 1; in netmap_fl_refill()
863 struct netmap_ring *ring = kring->ring; in netmap_fl_refill()
892 n = kring->nkr_num_slots - nm_kr_rxspace(kring); in netmap_fl_refill()
894 n = kring->rhead - kring->nr_hwcur; in netmap_fl_refill()
898 n += kring->nkr_num_slots; in netmap_fl_refill()
904 nm_i = netmap_idx_n2k(kring, nic_i); in netmap_fl_refill()
911 MPASS(nm_i == kring->nr_hwtail); in netmap_fl_refill()
913 MPASS(nm_i == kring->nr_hwcur); in netmap_fl_refill()
929 return (netmap_ring_reinit(kring)); in netmap_fl_refill()
932 nm_get_offset(kring, slot); in netmap_fl_refill()
960 MPASS(nm_i == kring->rhead); in netmap_fl_refill()
961 kring->nr_hwcur = nm_i; in netmap_fl_refill()
989 iflib_netmap_txsync(struct netmap_kring *kring, int flags) in iflib_netmap_txsync() argument
991 struct netmap_adapter *na = kring->na; in iflib_netmap_txsync()
993 struct netmap_ring *ring = kring->ring; in iflib_netmap_txsync()
996 u_int const lim = kring->nkr_num_slots - 1; in iflib_netmap_txsync()
997 u_int const head = kring->rhead; in iflib_netmap_txsync()
1005 u_int report_frequency = kring->nkr_num_slots >> 1; in iflib_netmap_txsync()
1008 iflib_txq_t txq = &ctx->ifc_txqs[kring->ring_id]; in iflib_netmap_txsync()
1035 nm_i = kring->nr_hwcur; in iflib_netmap_txsync()
1041 pi.ipi_qsidx = kring->ring_id; in iflib_netmap_txsync()
1042 nic_i = netmap_idx_k2n(kring, nm_i); in iflib_netmap_txsync()
1050 uint64_t offset = nm_get_offset(kring, slot); in iflib_netmap_txsync()
1114 kring->nr_hwcur = nm_i; in iflib_netmap_txsync()
1131 if (kring->nr_hwtail != nm_prev(kring->nr_hwcur, lim)) { in iflib_netmap_txsync()
1135 kring->nr_hwtail = nm_prev(netmap_idx_n2k(kring, nic_i), lim); in iflib_netmap_txsync()
1140 if (kring->nr_hwtail != nm_prev(kring->nr_hwcur, lim)) { in iflib_netmap_txsync()
1167 iflib_netmap_rxsync(struct netmap_kring *kring, int flags) in iflib_netmap_rxsync() argument
1169 struct netmap_adapter *na = kring->na; in iflib_netmap_rxsync()
1170 struct netmap_ring *ring = kring->ring; in iflib_netmap_rxsync()
1175 u_int const lim = kring->nkr_num_slots - 1; in iflib_netmap_rxsync()
1176 int force_update = (flags & NAF_FORCE_READ) || kring->nr_kflags & NKR_PENDINTR; in iflib_netmap_rxsync()
1182 iflib_rxq_t rxq = &ctx->ifc_rxqs[kring->ring_id]; in iflib_netmap_rxsync()
1212 uint32_t hwtail_lim = nm_prev(kring->nr_hwcur, lim); in iflib_netmap_rxsync()
1229 nm_i = netmap_idx_n2k(kring, nic_i); in iflib_netmap_rxsync()
1230 MPASS(nm_i == kring->nr_hwtail); in iflib_netmap_rxsync()
1234 ri.iri_qsidx = kring->ring_id; in iflib_netmap_rxsync()
1275 kring->nr_hwtail = nm_i; in iflib_netmap_rxsync()
1277 kring->nr_kflags &= ~NKR_PENDINTR; in iflib_netmap_rxsync()
1287 netmap_fl_refill(rxq, kring, false); in iflib_netmap_rxsync()
1361 struct netmap_kring *kring; in iflib_netmap_rxq_init() local
1367 kring = na->rx_rings[rxq->ifr_id]; in iflib_netmap_rxq_init()
1368 netmap_fl_refill(rxq, kring, true); in iflib_netmap_rxq_init()