[PATCH 0/4] copy_page improvements

Andrew Pinski apinski at caviumnetworks.com
Fri Feb 5 09:53:48 PST 2016


On 2/2/2016 4:46 AM, Will Deacon wrote:
> Hi all,
>
> This patch series aims to improve our copy_page implementation on both
> CPUs with and without hardware prefetchers. It is inspired by a previous
> patch series from Andrew, and one of the patches is lifted directly from
> there:
>
>    http://lists.infradead.org/pipermail/linux-arm-kernel/2016-January/399132.html
>
> Changes from that series:
>
>    * Applies on top of mainline
>    * Inverted the capability to the more generic ARM64_HAS_NO_HW_PREFETCH
>    * Re-jigged the MIDR detection to try to keep it simple
>
> I've left copy_template alone for now, since the template really deals
> with 64 bytes per iteration, which would need changing.

Right, I had looked at doing that also for newlib/glibc but the code is 
too complex.
>
> Andrew -- it would be helpful if you could take this for a spin on
> ThunderX to make sure it didn't screw anything up.

Yes it works and I get the needed prefetch in copy_page.

Tested-by: Andrew Pinski  <apinski at cavium.com>

Thanks,
Andrew

>
> Cheers,
>
> Will
>
> --->8
>
> Andrew Pinski (1):
>    arm64: lib: patch in prfm for copy_page if requested
>
> Will Deacon (3):
>    arm64: prefetch: don't provide spin_lock_prefetch with LSE
>    arm64: prefetch: add alternative pattern for CPUs without a prefetcher
>    arm64: lib: improve copy_page to deal with 128 bytes at a time
>
>   arch/arm64/include/asm/cpufeature.h |  3 +-
>   arch/arm64/include/asm/cputype.h    | 17 +++++++++-
>   arch/arm64/include/asm/processor.h  |  7 +++--
>   arch/arm64/kernel/cpu_errata.c      | 18 ++---------
>   arch/arm64/kernel/cpufeature.c      | 17 ++++++++++
>   arch/arm64/lib/copy_page.S          | 63 ++++++++++++++++++++++++++++++++-----
>   6 files changed, 98 insertions(+), 27 deletions(-)
>




More information about the linux-arm-kernel mailing list