Ping Are we targetting to integrate this optimization in DPDK 18.02? I am expecting a v6, thanks.
15/01/2018 12:37, Thomas Monjalon: > 15/01/2018 11:57, Herbert Guan: > > Hi Thomas, > > > > From: Thomas Monjalon [mailto:tho...@monjalon.net] > > > Hi, > > > > > > All the code is using ARM64, but the title suggests AArch64. > > > What is the difference between AArch64 and ARM64 (and ARMv8)? > > > > AArch64 and ARM64 refer to the same thing. AArch64 refers to the 64-bit > > architecture introduced since ARMv8-A. But the Linux kernel community > > calls it as ARM64. As to DPDK, in most existing compile flags, ARM64 is > > used. So this patch keeps the ARM64 naming in newly added compile options. > > So please let's continue to call it ARM64. > > > > 04/01/2018 11:20, Herbert Guan: > > > > +#define RTE_ARM64_MEMCPY_IS_UNALIGNED_COPY(dst, src) \ > > > > + ((uintptr_t)(dst) & RTE_ARM64_MEMCPY_ALIGN_MASK) #else > > > > +/* Both dst and src unalignment will be treated as unaligned copy */ > > > > +#define RTE_ARM64_MEMCPY_IS_UNALIGNED_COPY(dst, src) \ > > > > + (((uintptr_t)(dst) | (uintptr_t)(src)) & > > > > +RTE_ARM64_MEMCPY_ALIGN_MASK) #endif > > > > + > > > > + > > > > +/* > > > > + * If copy size is larger than threshold, memcpy() will be used. > > > > + * Run "memcpy_perf_autotest" to determine the proper threshold. > > > > + */ > > > > +#define RTE_ARM64_MEMCPY_ALIGNED_THRESHOLD > > > ((size_t)(0xffffffff)) > > > > +#define RTE_ARM64_MEMCPY_UNALIGNED_THRESHOLD > > > ((size_t)(0xffffffff)) > > > > + > > > > +/* > > > > + * The logic of USE_RTE_MEMCPY() can also be modified to best fit > > > platform. > > > > + */ > > > > +#define USE_RTE_MEMCPY(dst, src, n) \ > > > > +((!RTE_ARM64_MEMCPY_IS_UNALIGNED_COPY(dst, src) && \ n <= > > > > +RTE_ARM64_MEMCPY_ALIGNED_THRESHOLD) \ > > > > +|| (RTE_ARM64_MEMCPY_IS_UNALIGNED_COPY(dst, src) && \ > > > > +n <= RTE_ARM64_MEMCPY_UNALIGNED_THRESHOLD)) > > > > + > > > > +/************************************** > > > > + * End of customization section > > > > + **************************************/ > > > > > > Modifying the code to asjust the platform is not easy for deployment. > > > Can we move some customization variables inside the configuration file? > > > > RTE_ARM64_MEMCPY_ALIGNED_THRESHOLD and RTE_ARM64_MEMCPY_UNALIGNED_THRESHOLD > > are the 2 parameters can be configured during build-time. The values can > > be specified with the best values for the target platform. Usually it's > > not necessary to change the expression, the comment added in the code is > > just to raise the hint that this code piece can be modified. > > The build time configuration must be set in the config file > (config/common_armv8a_linuxapp). > v6 please? >