[dpdk-dev] ixgbe: use rte_mbuf_prefetch_part2 for cacheline1 access

Message ID 1466172404-14120-1-git-send-email-jerin.jacob@caviumnetworks.com (mailing list archive)
State Accepted, archived
Delegated to: Bruce Richardson
Headers

Commit Message

Jerin Jacob June 17, 2016, 2:06 p.m. UTC
  made second cache line access behavior same as IA

Signed-off-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
---
 drivers/net/ixgbe/ixgbe_rxtx_vec_neon.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)
  

Comments

Jianbo Liu June 20, 2016, 3:19 a.m. UTC | #1
On 17 June 2016 at 22:06, Jerin Jacob <jerin.jacob@caviumnetworks.com> wrote:
> made second cache line access behavior same as IA
>
> Signed-off-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
> ---
>  drivers/net/ixgbe/ixgbe_rxtx_vec_neon.c | 8 ++++----
>  1 file changed, 4 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/net/ixgbe/ixgbe_rxtx_vec_neon.c b/drivers/net/ixgbe/ixgbe_rxtx_vec_neon.c
> index 9c1d124..64a329e 100644
> --- a/drivers/net/ixgbe/ixgbe_rxtx_vec_neon.c
> +++ b/drivers/net/ixgbe/ixgbe_rxtx_vec_neon.c
> @@ -280,10 +280,10 @@ _recv_raw_pkts_vec(struct ixgbe_rx_queue *rxq, struct rte_mbuf **rx_pkts,
>                 vst1q_u64((uint64_t *)&rx_pkts[pos + 2], mbp2);
>
>                 if (split_packet) {
> -                       rte_prefetch_non_temporal(&rx_pkts[pos]->cacheline1);
> -                       rte_prefetch_non_temporal(&rx_pkts[pos + 1]->cacheline1);
> -                       rte_prefetch_non_temporal(&rx_pkts[pos + 2]->cacheline1);
> -                       rte_prefetch_non_temporal(&rx_pkts[pos + 3]->cacheline1);
> +                       rte_mbuf_prefetch_part2(rx_pkts[pos]);
> +                       rte_mbuf_prefetch_part2(rx_pkts[pos + 1]);
> +                       rte_mbuf_prefetch_part2(rx_pkts[pos + 2]);
> +                       rte_mbuf_prefetch_part2(rx_pkts[pos + 3]);
>                 }
>
>                 /* D.1 pkt 3,4 convert format from desc to pktmbuf */
> --
> 2.5.5
>

Reviewed-by: Jianbo Liu <jianbo.liu@linaro.org>
  
Bruce Richardson June 24, 2016, 11:04 a.m. UTC | #2
On Mon, Jun 20, 2016 at 11:19:19AM +0800, Jianbo Liu wrote:
> On 17 June 2016 at 22:06, Jerin Jacob <jerin.jacob@caviumnetworks.com> wrote:
> > made second cache line access behavior same as IA
> >
> > Signed-off-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
> > ---
> >  drivers/net/ixgbe/ixgbe_rxtx_vec_neon.c | 8 ++++----
> >  1 file changed, 4 insertions(+), 4 deletions(-)
> >
> > diff --git a/drivers/net/ixgbe/ixgbe_rxtx_vec_neon.c b/drivers/net/ixgbe/ixgbe_rxtx_vec_neon.c
> > index 9c1d124..64a329e 100644
> > --- a/drivers/net/ixgbe/ixgbe_rxtx_vec_neon.c
> > +++ b/drivers/net/ixgbe/ixgbe_rxtx_vec_neon.c
> > @@ -280,10 +280,10 @@ _recv_raw_pkts_vec(struct ixgbe_rx_queue *rxq, struct rte_mbuf **rx_pkts,
> >                 vst1q_u64((uint64_t *)&rx_pkts[pos + 2], mbp2);
> >
> >                 if (split_packet) {
> > -                       rte_prefetch_non_temporal(&rx_pkts[pos]->cacheline1);
> > -                       rte_prefetch_non_temporal(&rx_pkts[pos + 1]->cacheline1);
> > -                       rte_prefetch_non_temporal(&rx_pkts[pos + 2]->cacheline1);
> > -                       rte_prefetch_non_temporal(&rx_pkts[pos + 3]->cacheline1);
> > +                       rte_mbuf_prefetch_part2(rx_pkts[pos]);
> > +                       rte_mbuf_prefetch_part2(rx_pkts[pos + 1]);
> > +                       rte_mbuf_prefetch_part2(rx_pkts[pos + 2]);
> > +                       rte_mbuf_prefetch_part2(rx_pkts[pos + 3]);
> >                 }
> >
> >                 /* D.1 pkt 3,4 convert format from desc to pktmbuf */
> > --
> > 2.5.5
> >
> 
> Reviewed-by: Jianbo Liu <jianbo.liu@linaro.org>

Applied to dpdk-next-net/rel_16_07

/Bruce
  

Patch

diff --git a/drivers/net/ixgbe/ixgbe_rxtx_vec_neon.c b/drivers/net/ixgbe/ixgbe_rxtx_vec_neon.c
index 9c1d124..64a329e 100644
--- a/drivers/net/ixgbe/ixgbe_rxtx_vec_neon.c
+++ b/drivers/net/ixgbe/ixgbe_rxtx_vec_neon.c
@@ -280,10 +280,10 @@  _recv_raw_pkts_vec(struct ixgbe_rx_queue *rxq, struct rte_mbuf **rx_pkts,
 		vst1q_u64((uint64_t *)&rx_pkts[pos + 2], mbp2);
 
 		if (split_packet) {
-			rte_prefetch_non_temporal(&rx_pkts[pos]->cacheline1);
-			rte_prefetch_non_temporal(&rx_pkts[pos + 1]->cacheline1);
-			rte_prefetch_non_temporal(&rx_pkts[pos + 2]->cacheline1);
-			rte_prefetch_non_temporal(&rx_pkts[pos + 3]->cacheline1);
+			rte_mbuf_prefetch_part2(rx_pkts[pos]);
+			rte_mbuf_prefetch_part2(rx_pkts[pos + 1]);
+			rte_mbuf_prefetch_part2(rx_pkts[pos + 2]);
+			rte_mbuf_prefetch_part2(rx_pkts[pos + 3]);
 		}
 
 		/* D.1 pkt 3,4 convert format from desc to pktmbuf */