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

Honnappa Nagarahalli Honnappa.Nagarahalli at arm.com
Thu Oct 15 16:38:54 CEST 2020


<snip>

> 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.
+ Joyce, to test this for VirtIO on Arm

> 
> > > > 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