This is the mail archive of the
mailing list for the libc-ports project.
Re: [PATCH v3] ARM: Improve armv7 memcpy performance.
- From: Will Newton <will dot newton at linaro dot org>
- To: "Joseph S. Myers" <joseph at codesourcery dot com>
- Cc: "libc-ports at sourceware dot org" <libc-ports at sourceware dot org>, Patch Tracking <patches at linaro dot org>
- Date: Mon, 9 Sep 2013 17:06:07 +0100
- Subject: Re: [PATCH v3] ARM: Improve armv7 memcpy performance.
- Authentication-results: sourceware.org; auth=none
- References: <522D977E dot 2000906 at linaro dot org> <Pine dot LNX dot 4 dot 64 dot 1309091336400 dot 25250 at digraph dot polyomino dot org dot uk>
On 9 September 2013 14:39, Joseph S. Myers <firstname.lastname@example.org> wrote:
> On Mon, 9 Sep 2013, Will Newton wrote:
>> Only enter the aligned copy loop with buffers that can be 8-byte
>> aligned. This improves performance slightly on Cortex-A9 and
>> Cortex-A15 cores for large copies with buffers that are 4-byte
>> aligned but not 8-byte aligned.
> Did you conclude that the comment about needing unaligned word access for
> ldrd/strd is still accurate after this patch (and if so, for which uses)?
No, I overlooked that, I'll submit a new patch.
> There was a long discussion on benchmarking starting from this patch.
> Could you summarise the conclusions of that discussion as they relate to
> the appropriate benchmarks to apply to this patch, and give pointers to
> your before-and-after performance results?
I believe the glibc memcpy benchmark is not capable in its present
form of showing the difference between this version of the code and
the current one:
1. The variety of alignments benchmarked is not adequate
2. The variability of the benchmark results is quite high (more runs
required and page allocation issue)
3. The output of the benchmark contains no measure of variance
4. There is no means of showing graphically the output of the
benchmark (for subtle differences this is necessary IMO)
These are all surmountable problems but I would rather not gate
acceptance of this code on a satisfactory resolution of the above
issues. I can provide output from the cortex-strings benchmark quite
Toolchain Working Group, Linaro