> -----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

Reply via email to