-----Original Message----- > Date: Wed, 18 Oct 2017 14:15:40 +0530 > From: Pavan Nikhilesh <pbhagavat...@caviumnetworks.com> > To: jerin.ja...@caviumnetworks.com, santosh.shu...@caviumnetworks.com, > nikhil....@intel.com > Cc: dev@dpdk.org, Pavan Nikhilesh <pbhagavat...@caviumnetworks.com> > Subject: [dpdk-dev] [PATCH v2 1/3] net/octeontx: add support for event Rx > adapter > X-Mailer: git-send-email 2.7.4 > > Add functions to modify and delete qos responsible for mapping eth queues > to event queues used for configuring event Rx adapter. > The mbox functions have been moved from octeontx_pkivf.c to > octeontx_pkivf.h to allow event_octeontx to access them. > > Signed-off-by: Pavan Nikhilesh <pbhagavat...@caviumnetworks.com> > --- > > v2 changes: > - Improve conditional statement readability (Nikhil). > > This series depends on http://dpdk.org/dev/patchwork/patch/30430 > > > static __rte_always_inline uint16_t __hot > __octeontx_xmit_pkts(void *lmtline_va, void *ioreg_va, int64_t *fc_status_va, > @@ -195,10 +107,8 @@ octeontx_xmit_pkts(void *tx_queue, struct rte_mbuf > **tx_pkts, uint16_t nb_pkts) > uint16_t __hot > octeontx_recv_pkts(void *rx_queue, struct rte_mbuf **rx_pkts, uint16_t > nb_pkts) > { > - struct rte_mbuf *mbuf; > struct octeontx_rxq *rxq; > struct rte_event ev; > - octtx_wqe_t *wqe; > size_t count; > uint16_t valid_event; > > @@ -210,23 +120,7 @@ octeontx_recv_pkts(void *rx_queue, struct rte_mbuf > **rx_pkts, uint16_t nb_pkts) > 1, 0); > if (!valid_event) > break; > - > - wqe = (octtx_wqe_t *)(uintptr_t)ev.u64; > - rte_prefetch_non_temporal(wqe); > - > - /* Get mbuf from wqe */ > - mbuf = (struct rte_mbuf *)((uintptr_t)wqe - > - OCTTX_PACKET_WQE_SKIP); > - mbuf->packet_type = > - ptype_table[wqe->s.w2.lcty][wqe->s.w2.lety][wqe->s.w2.lfty]; > - mbuf->data_off = RTE_PTR_DIFF(wqe->s.w3.addr, mbuf->buf_addr); > - mbuf->pkt_len = wqe->s.w1.len; > - mbuf->data_len = mbuf->pkt_len; > - mbuf->nb_segs = 1; > - mbuf->ol_flags = 0; > - mbuf->port = rxq->port_id;
IMO, You don't need to move the mbuf conversion inline function to 2/3, Instead if we do in 1/3.It will functionality correct at 1/3. > - rte_mbuf_refcnt_set(mbuf, 1); > - rx_pkts[count++] = mbuf; > + rx_pkts[count++] = (struct rte_mbuf *)ev.u64; This will create build error on 32bit. You can avoid the typecast by changing to ev.mbuf. /export/dpdk-next-eventdev/drivers/net/octeontx/octeontx_rxtx.c: In function ‘octeontx_recv_pkts’: /export/dpdk-next-eventdev/drivers/net/octeontx/octeontx_rxtx.c:123:22: error: cast to pointer from integer of different size [-Werror=int-to-pointer-cast] rx_pkts[count++] = (struct rte_mbuf *)ev.u64; ^ cc1: all warnings being treated as errors