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?