On Sun, 14 Jun 2020 09:11:28 +0200
Sven Auhagen <sven.auha...@voleatech.de> wrote:

> The packet header prefetch is at an offset
> now. Correct the prefetch address.
> 
> Signed-off-by: Sven Auhagen <sven.auha...@voleatech.de>
> ---
>  drivers/net/ethernet/marvell/mvneta.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/net/ethernet/marvell/mvneta.c 
> b/drivers/net/ethernet/marvell/mvneta.c
> index 51889770958d..344fc5f649b4 100644
> --- a/drivers/net/ethernet/marvell/mvneta.c
> +++ b/drivers/net/ethernet/marvell/mvneta.c
> @@ -2229,7 +2229,7 @@ mvneta_swbm_rx_frame(struct mvneta_port *pp,
>                               len, dma_dir);
>  
>       /* Prefetch header */
> -     prefetch(data);
> +     prefetch(data + pp->rx_offset_correction + MVNETA_MH_SIZE);

The comment does say "header", so I guess your change is correct if we
are talking about the packet header.

Currently this prefetch will help XDP-redirect, as it store xdp_frame
in this area.

>       xdp->data_hard_start = data;
>       xdp->data = data + pp->rx_offset_correction + MVNETA_MH_SIZE;

If you really need to prefetch the packet headers, it would be the same
as calling prefetch(xdp->data), right?

Have you benchmarked that this prefetch is a benefit?

-- 
Best regards,
  Jesper Dangaard Brouer
  MSc.CS, Principal Kernel Engineer at Red Hat
  LinkedIn: http://www.linkedin.com/in/brouer

Reply via email to