> -----Original Message----- > From: McDaniel, Timothy <timothy.mcdan...@intel.com> > Sent: Friday, September 11, 2020 2:19 PM > Cc: dev@dpdk.org; Carrillo, Erik G <erik.g.carri...@intel.com>; Eads, Gage > <gage.e...@intel.com>; Van Haaren, Harry <harry.van.haa...@intel.com>; > jer...@marvell.com > Subject: [PATCH v4 16/22] event/dlb: add dequeue and its burst variants > > Add support for dequeue, dequeue_burst, ... This message could use some more detail. [...] > +static inline int > +dlb_process_dequeue_qes(struct dlb_eventdev_port *ev_port, > + struct dlb_port *qm_port, > + struct rte_event *events, > + struct dlb_dequeue_qe *qes, > + int cnt) > +{ > + uint8_t *qid_mappings = qm_port->qid_mappings; > + int i, num; > + > + RTE_SET_USED(ev_port); /* avoids unused variable error */ > + > + for (i = 0, num = 0; i < cnt; i++) { > + struct dlb_dequeue_qe *qe = &qes[i]; > + int sched_type_map[4] = { > + [DLB_SCHED_ATOMIC] = RTE_SCHED_TYPE_ATOMIC, > + [DLB_SCHED_UNORDERED] = > RTE_SCHED_TYPE_PARALLEL, > + [DLB_SCHED_ORDERED] = RTE_SCHED_TYPE_ORDERED, > + [DLB_SCHED_DIRECTED] = RTE_SCHED_TYPE_ATOMIC, > + }; > + > + DLB_LOG_DBG("dequeue success, data = 0x%llx, qid=%d, > event_type=%d, subevent=%d\npp_id = %d, sched_type = %d, qid = %d, > err=%d\n", > + (long long)qe->data, qe->qid, > + qe->u.event_type.major, > + qe->u.event_type.sub, > + qe->pp_id, qe->sched_type, qe->qid, qe->error); > + > + /* Fill in event information. > + * Note that flow_id must be embedded in the data by > + * the app, such as the mbuf RSS hash field if the data > + * buffer is a mbuf. > + */ > + if (unlikely(qe->error)) { > + DLB_LOG_ERR("QE error bit ON\n"); > + DLB_INC_STAT(ev_port->stats.traffic.rx_drop, 1); > + dlb_consume_qe_immediate(qm_port, 1); > + continue; /* Ignore */ > + } > + > + events[num].u64 = qe->data; > + events[num].queue_id = qid_mappings[qe->qid]; > + events[num].priority = DLB_TO_EV_PRIO((uint8_t)qe->priority); > + events[num].event_type = qe->u.event_type.major; > + events[num].sub_event_type = qe->u.event_type.sub; > + events[num].sched_type = sched_type_map[qe->sched_type]; > + DLB_INC_STAT(ev_port->stats.rx_sched_cnt[qe->sched_type], > 1); > + > + DLB_INC_STAT(ev_port->stats.traffic.rx_ok, 1); Move this outside the loop and increment by num rather than 1? > + > + num++; > + } > + > + return num; > +} Thanks, Gage