[dpdk-dev] [PATCH 06/14] fm10k: add Vector RX function

Chen, Jing D jing.d.chen at intel.com
Wed Sep 30 15:18:18 CEST 2015



> -----Original Message-----
> From: Ananyev, Konstantin
> Sent: Tuesday, September 29, 2015 9:14 PM
> To: Chen, Jing D; dev at dpdk.org
> Subject: RE: [dpdk-dev] [PATCH 06/14] fm10k: add Vector RX function
> 
> 
> > +	/* A. load 4 packet in one loop
> > +	 * [A*. mask out 4 unused dirty field in desc]
> > +	 * B. copy 4 mbuf point from swring to rx_pkts
> > +	 * C. calc the number of DD bits among the 4 packets
> > +	 * [C*. extract the end-of-packet bit, if requested]
> > +	 * D. fill info. from desc to mbuf
> > +	 */
> > +	for (pos = 0, nb_pkts_recd = 0; pos < nb_pkts;
> > +			pos += RTE_FM10K_DESCS_PER_LOOP,
> > +			rxdp += RTE_FM10K_DESCS_PER_LOOP) {
> > +		__m128i descs0[RTE_FM10K_DESCS_PER_LOOP];
> > +		__m128i pkt_mb1, pkt_mb2, pkt_mb3, pkt_mb4;
> > +		__m128i zero, staterr, sterr_tmp1, sterr_tmp2;
> > +		__m128i mbp1, mbp2; /* two mbuf pointer in one XMM reg.
> */
> > +
> > +		if (split_packet) {
> > +			rte_prefetch0(&rx_pkts[pos]->cacheline1);
> > +			rte_prefetch0(&rx_pkts[pos + 1]->cacheline1);
> > +			rte_prefetch0(&rx_pkts[pos + 2]->cacheline1);
> > +			rte_prefetch0(&rx_pkts[pos + 3]->cacheline1);
> > +		}
> 
> 
> Same thing as with i40e vPMD:
> You are pretching junk addreses here.
> Check out Zoltan's patch:
> http://dpdk.org/dev/patchwork/patch/7190/
> and related conversation:
> http://dpdk.org/ml/archives/dev/2015-September/023715.html
> I think there is the same issue here.
> Konstantin
> 

Thanks for the comments, Konstantin!  I'll check the material you referred to.



More information about the dev mailing list