Yes, this is the target.  I was in a 3-day meeting this week, and had limited 
time to update the patch.  

A new patch v6 was sent out just now.  It's actually sent twice -- forgot to 
add version info and "--in-reply-to" in the first one.  Please just ignore that 
and I'm sorry for the disturbance.


Best regards,
Herbert

-----邮件原件-----
发件人: Thomas Monjalon [mailto:tho...@monjalon.net] 
发送时间: 2018年1月19日 7:54
收件人: Herbert Guan <herbert.g...@arm.com>
抄送: dev@dpdk.org; jerin.ja...@caviumnetworks.com; nd <n...@arm.com>
主题: Re: [dpdk-dev] [PATCH v5] arch/arm: optimization for memcpy on AArch64

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



Reply via email to