[dpdk-dev] [PATCH v2] config: enable packet data prefetch

Thomas Monjalon thomas at monjalon.net
Thu Oct 15 11:21:07 CEST 2020


15/10/2020 10:23, Liu, Yong:
> From: Honnappa Nagarahalli <Honnappa.Nagarahalli at arm.com>
> > > > 23/09/2020 03:51, Marvin Liu:
> > > > > Data prefetch instruction can preload data into cpu’s hierarchical
> > > > > cache before data access. Virtualized data paths like virtio
> > > > > utilized this feature for acceleration. Since most modern cpus have
> > > > > support prefetch function, we can enable packet data prefetch as
> > default.
> > > > >
> > > > > Signed-off-by: Marvin Liu <yong.liu at intel.com>
> > > > > ---
> > > > > +#define RTE_PMD_PACKET_PREFETCH 1
> > > >
> > > > We could also remove the related #ifdefs.
> > > >
> > > > What can be the drawback of always enable those prefetches?
> > > >
> > >
> > > Hi Thomas,
> > > I think the potential drawback is that current prefetch location cannot
> > > guarantee the best performance across different platforms.
> > Then, does it make sense to enable this by default?
> > 
> 
> Now most of prefetch actions are placed after pointer of data is valid.  I think this methodology can benefit all platforms.
> It's hard to say that it’s the best choice for all. But no more better solution in my mind. 
> At least, we need to allow user to enable packet data prefetch.

In my opinion, it can be tested and measured.

> > > Each developer has tuned the performance by adding prefetch instruction
> > > and verified the result on himself platform.
> > > So prefetch location is based on certain platform, also it will be hard for
> > > developer to compare the results across platforms.

If it shows benefit on an architecture, then it should be enabled
with #ifdef RTE_ARCH_XX

I am for removing the option RTE_PMD_PACKET_PREFETCH.





More information about the dev mailing list