15/10/2020 10:23, Liu, Yong: > From: Honnappa Nagarahalli <honnappa.nagaraha...@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....@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.