[PATCH] ARM: mm: enable L1 prefetch on Cortex-A9
Dirk Behme
dirk.behme at de.bosch.com
Mon Jun 15 03:42:29 PDT 2015
On 11.06.2015 13:52, Thomas Petazzoni wrote:
> The Cortex-A9 has a L1 prefetch capability documented at
> http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ddi0388e/Chdejhgd.html:
>
> The Cortex-A9 data cache implements an automatic prefetcher that
> monitors cache misses done by the processor. This unit can monitor
> and prefetch two independent data streams. It can be activated in
> software using a CP15 Auxiliary Control Register bit. See Auxiliary
> Control Register.
>
> This commit enables this L1 prefetch feature unconditionally on all
> Cortex-A9 by setting bit 2 in the Auxiliary Control CP15
> register. Note that since this bit only exists on Cortex-A9 but not on
> Cortex-A5 or Cortex-R7, we separate the handling of Cortex-A9 from the
> one of those two other cores.
Have you observed or measured any performance improvements or changes
using this change?
Besta regards
Dirk
> Signed-off-by: Thomas Petazzoni <thomas.petazzoni at free-electrons.com>
> ---
> arch/arm/mm/proc-v7.S | 5 ++++-
> 1 file changed, 4 insertions(+), 1 deletion(-)
>
> diff --git a/arch/arm/mm/proc-v7.S b/arch/arm/mm/proc-v7.S
> index 3d1054f..106ea4d 100644
> --- a/arch/arm/mm/proc-v7.S
> +++ b/arch/arm/mm/proc-v7.S
> @@ -257,8 +257,11 @@ ENDPROC(cpu_pj4b_do_resume)
> * It is assumed that:
> * - cache type register is implemented
> */
> -__v7_ca5mp_setup:
> __v7_ca9mp_setup:
> + mov r10, #(1 << 0) @ Cache/TLB ops broadcasting
> + orr r10, r10, #(1 << 2) @ L1 prefetch
> + b 1f
> +__v7_ca5mp_setup:
> __v7_cr7mp_setup:
> mov r10, #(1 << 0) @ Cache/TLB ops broadcasting
> b 1f
More information about the linux-arm-kernel
mailing list