[dpdk-dev] [PATCH] net/virtio: enable packet data prefetch on	x86
    Maxime Coquelin 
    maxime.coquelin at redhat.com
       
    Thu Nov 12 09:48:06 CET 2020
    
    
  
Hi Marvin,
On 11/11/20 4:40 PM, Marvin Liu wrote:
> Data prefetch instruction can preload data into cpu’s hierarchical
> cache before data access. Virtio datapath utilized this feature for
> data access acceleration. As config RTE_PMD_PACKET_PREFETCH was
> discarded, now packet data prefetch is enabled based on architecture.
> 
> Signed-off-by: Marvin Liu <yong.liu at intel.com>
> 
> diff --git a/drivers/net/virtio/virtqueue.h b/drivers/net/virtio/virtqueue.h
> index 42c4c9882..0196290a5 100644
> --- a/drivers/net/virtio/virtqueue.h
> +++ b/drivers/net/virtio/virtqueue.h
> @@ -106,7 +106,7 @@ virtqueue_store_flags_packed(struct vring_packed_desc *dp,
>  		dp->flags = flags;
>  	}
>  }
> -#ifdef RTE_PMD_PACKET_PREFETCH
> +#if defined(RTE_ARCH_X86)
>  #define rte_packet_prefetch(p)  rte_prefetch1(p)
>  #else
>  #define rte_packet_prefetch(p)  do {} while(0)
> 
Thanks for catching this issue.
I agree it should be re-enabled by default, and not only on X86, not
only on Virtio PMD.
AFAICS, prefetch was enabled for all platforms before the switch to
Meson, so I see it as an involuntary change that needs to be reverted.
Then, I think having a possibility to disable it would be nice, so maybe
we should add an option in our build system to do that.
Thanks,
Maxime
    
    
More information about the dev
mailing list