[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