kernel-ark/arch/arm
Mans Rullgard 11e0264046 omap4: l2x0: enable instruction and data prefetching
Enabling L2 prefetching improves performance as shown on Panda
ES2.1 board with mem test, and it has measurable impact on
performances. I think we should consider it, even though it damages
"writes" a bit. (rebased to k.org)
Usually the prefetch is used at both levels together L1 + L2, however,
to enable the CP15 prefetch engines, these are under security, and on
GP devices, we cannot enable it(e.g. on PandaBoard). However, just
enabling PL310 prefetch seems to provide performance improvement,
as shown in the data below (from Ubuntu) and would be a great thing
to pull in.

What prefetch does is enable automatic next line prefetching. With this
enabled, whenever the PL310 receives a cachable read request, it
automatically prefetches the following cache line as well.

Measurement Data:
==
STOCK 10.10 WITHOUT PATCH

========================
~# ./memspeed
size    8388608 8192k 8M
offset  8388608, 0
buffers 0x2aaad000 0x2b2ad000
copy  libc          133 MB/s
copy  Android v5    273 MB/s
copy  Android NEON  235 MB/s
copy  INT32         116 MB/s
copy  ASM ARM       187 MB/s
copy  ASM VLDM 64   204 MB/s
copy  ASM VLDM 128  173 MB/s
copy  ASM VLD1      216 MB/s
read  ASM ARM       286 MB/s
read  ASM VLDM      242 MB/s
read  ASM VLD1      286 MB/s
write libc         1947 MB/s
write ASM ARM      1943 MB/s
write ASM VSTM     1942 MB/s
write ASM VST1     1935 MB/s

10.10 + PATCH
=============
~# ./memspeed
size    8388608 8192k 8M
offset  8388608, 0
buffers 0x2ab17000 0x2b317000
copy  libc          129 MB/s
copy  Android v5    256 MB/s
copy  Android NEON  356 MB/s
copy  INT32         127 MB/s
copy  ASM ARM       321 MB/s
copy  ASM VLDM 64   337 MB/s
copy  ASM VLDM 128  321 MB/s
copy  ASM VLD1      350 MB/s
read  ASM ARM       496 MB/s
read  ASM VLDM      470 MB/s
read  ASM VLD1      488 MB/s
write libc         1701 MB/s
write ASM ARM      1682 MB/s
write ASM VSTM     1693 MB/s
write ASM VST1     1681 MB/s

Signed-off-by: Mans Rullgard <mans@mansr.com>
Signed-off-by: Santosh Shilimkar <santosh.shilimkar@ti.com>
Tested-by: Nishanth Menon <nm@ti.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
2010-12-18 09:32:41 -08:00
..
boot ARM: 6503/1: Thumb-2: Restore sensible zImage header layout for CONFIG_THUMB2_KERNEL 2010-11-30 13:44:26 +00:00
common ARM: 6524/1: GIC irq desciptor bug fix 2010-12-06 11:03:31 +00:00
configs at91: merge all at91rm9200 defconfig in one single file 2010-11-30 10:59:15 +01:00
include/asm ARM: l2x0: Add aux control register bitfields 2010-12-18 09:30:15 -08:00
kernel ARM: 6519/1: kuser: Fix incorrect cmpxchg syscall in kuser helpers 2010-12-04 11:01:12 +00:00
lib ARM: 6482/2: Fix find_next_zero_bit and related assembly 2010-11-24 20:17:46 +00:00
mach-aaec2000 ARM: 6484/1: fix compile warning in mm/init.c 2010-11-21 22:05:56 +00:00
mach-at91 at91/board-yl-9200: fix typo in video support 2010-11-30 17:23:41 +01:00
mach-bcmring ARM: 6484/1: fix compile warning in mm/init.c 2010-11-21 22:05:56 +00:00
mach-clps711x ARM: 6484/1: fix compile warning in mm/init.c 2010-11-21 22:05:56 +00:00
mach-cns3xxx ARM: cns3xxx: Fix build with CONFIG_PCI=y 2010-11-29 19:19:15 +03:00
mach-davinci ASoC: davinci: fixes for multi-component 2010-11-17 18:36:40 +00:00
mach-dove
mach-ebsa110 ARM: 6484/1: fix compile warning in mm/init.c 2010-11-21 22:05:56 +00:00
mach-ep93xx ARM: 6462/1: EP93xx: Document DMA M2P API 2010-11-07 16:13:30 +00:00
mach-footbridge ARM: 6484/1: fix compile warning in mm/init.c 2010-11-21 22:05:56 +00:00
mach-gemini
mach-h720x ARM: 6484/1: fix compile warning in mm/init.c 2010-11-21 22:05:56 +00:00
mach-imx ARM i.MX27 eukrea: Fix compilation 2010-11-15 09:25:05 +01:00
mach-integrator ARM: 6484/1: fix compile warning in mm/init.c 2010-11-21 22:05:56 +00:00
mach-iop13xx
mach-iop32x
mach-iop33x
mach-ixp4xx
mach-ixp23xx
mach-ixp2000 ARM: 6460/1: ixp2000: fix type of ixp2000_timer_interrupt 2010-10-27 21:40:28 +01:00
mach-kirkwood Merge git://git.kernel.org/pub/scm/linux/kernel/git/nico/orion 2010-11-07 16:10:56 +00:00
mach-ks8695
mach-l7200/include/mach
mach-lh7a40x
mach-loki
mach-lpc32xx
mach-mmp ARM: mmp2: remove not used clk_rtc 2010-11-30 20:14:03 +08:00
mach-msm ARM: 6484/1: fix compile warning in mm/init.c 2010-11-21 22:05:56 +00:00
mach-mv78xx0 Merge git://git.kernel.org/pub/scm/linux/kernel/git/nico/orion 2010-11-07 16:10:56 +00:00
mach-mx3 ARM i.MX pcm037 eet: compile fixes 2010-11-15 09:25:03 +01:00
mach-mx5 Merge branch 'for-rmk' of git://git.pengutronix.de/git/imx/linux-2.6 into devel-stable 2010-10-28 11:13:00 +01:00
mach-mx25 mx25: fix spi device registration typo 2010-11-15 09:25:06 +01:00
mach-mxc91231
mach-netx ARM: 6484/1: fix compile warning in mm/init.c 2010-11-21 22:05:56 +00:00
mach-nomadik
mach-ns9xxx
mach-nuc93x
mach-omap1 ARM: 6484/1: fix compile warning in mm/init.c 2010-11-21 22:05:56 +00:00
mach-omap2 omap4: l2x0: enable instruction and data prefetching 2010-12-18 09:32:41 -08:00
mach-orion5x Merge git://git.kernel.org/pub/scm/linux/kernel/git/nico/orion 2010-11-07 16:10:56 +00:00
mach-pnx4008 ARM: 6484/1: fix compile warning in mm/init.c 2010-11-21 22:05:56 +00:00
mach-pxa ARM: pxa/palm: fix ifdef around gen_nand driver registration 2010-11-30 20:14:05 +08:00
mach-realview ARM: 6507/1: RealView: Correct data alignment in headsmp.S for CONFIG_THUMB2_KERNEL 2010-11-30 13:44:27 +00:00
mach-rpc ARM: 6484/1: fix compile warning in mm/init.c 2010-11-21 22:05:56 +00:00
mach-s3c24a0/include/mach Merge branch 'for-rmk' of git://git.kernel.org/pub/scm/linux/kernel/git/kgene/linux-samsung into devel-stable 2010-10-28 12:27:34 +01:00
mach-s3c64xx ARM: S3C64XX: fix uart clock setup for mini6410/real6410 2010-11-25 10:58:11 +09:00
mach-s3c2400
mach-s3c2410 ARM: S3C2410: Adapt h1940-bluetooth to gpiolib changes 2010-11-25 10:58:10 +09:00
mach-s3c2412 ARM: S3C2412: Fix typo in CONFIG_CPU_S3C2412_ONLY definition 2010-11-30 08:49:11 +00:00
mach-s3c2416 ARM: SMDK2416: Select MACH_SMDK, S3C_DEV_NAND, S3C_DEV_USB_HOST 2010-11-30 08:34:02 +00:00
mach-s3c2440 ARM: S3C24XX: Fix mess with gpio {set,get}_pull callbacks 2010-12-08 01:04:56 +00:00
mach-s3c2443 ARM: S3C2443: Select properly ARM core type 2010-11-30 08:44:09 +00:00
mach-s5p64x0 Merge branch 'for-rmk' of git://git.kernel.org/pub/scm/linux/kernel/git/kgene/linux-samsung into devel-stable 2010-10-28 12:27:34 +01:00
mach-s5p6442 Merge branch 'for-rmk' of git://git.kernel.org/pub/scm/linux/kernel/git/kgene/linux-samsung into devel-stable 2010-10-28 12:27:34 +01:00
mach-s5pc100 Merge branch 'for-rmk' of git://git.kernel.org/pub/scm/linux/kernel/git/kgene/linux-samsung into devel-stable 2010-10-28 12:27:34 +01:00
mach-s5pv210 ARM: S5PV210: Fix sysdev related warning messages 2010-11-25 10:58:11 +09:00
mach-s5pv310 Merge branch 'for-rmk' of git://git.kernel.org/pub/scm/linux/kernel/git/kgene/linux-samsung into devel-stable 2010-10-28 12:27:34 +01:00
mach-sa1100 ARM: 6449/1: Fix for compiler warning of uninitialized variable. 2010-10-27 21:40:28 +01:00
mach-shark ARM: 6484/1: fix compile warning in mm/init.c 2010-11-21 22:05:56 +00:00
mach-shmobile Merge branch 'rmobile-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/lethal/sh-2.6 2010-11-27 07:17:16 +09:00
mach-spear3xx
mach-spear6xx
mach-stmp37xx
mach-stmp378x
mach-tcc8k
mach-tegra ARM: tegra: fix regression from addruart rewrite 2010-12-06 20:07:57 -08:00
mach-u300 Merge branch 'next-spi' of git://git.secretlab.ca/git/linux-2.6 2010-11-01 07:50:43 -04:00
mach-ux500 ARM: 6473/1: Small update to ux500 specific L2 cache code 2010-11-21 22:05:56 +00:00
mach-versatile ARM: 6484/1: fix compile warning in mm/init.c 2010-11-21 22:05:56 +00:00
mach-vexpress ARM: 6508/1: vexpress: Correct data alignment in headsmp.S for CONFIG_THUMB2_KERNEL 2010-11-30 13:44:27 +00:00
mach-w90x900
mm ARM: 6535/1: V6 MPCore v6_dma_inv_range and v6_dma_flush_range RWFO fix 2010-12-14 22:23:34 +00:00
nwfpe
oprofile
plat-iop ARM: 6523/1: iop: ensure sched_clock() is notrace 2010-12-04 13:36:29 +00:00
plat-mxc ARM i.MX spi: fix compilation for i.MX21 2010-11-15 09:25:04 +01:00
plat-nomadik ARM: 6488/1: nomadik: prevent sched_clock() wraparound 2010-11-21 22:05:57 +00:00
plat-omap OMAP1: SRAM: fix size for OMAP1611 SoCs 2010-12-09 16:29:21 -08:00
plat-orion
plat-pxa mmc: sdhci: 8-bit bus width changes 2010-11-22 15:12:04 -05:00
plat-s3c24xx ARM: S3C24XX: Fix mess with gpio {set,get}_pull callbacks 2010-12-08 01:04:56 +00:00
plat-s5p ARM: S5P: Add initial map for GPIO2 and GPIO3 2010-10-25 16:06:22 +09:00
plat-samsung ARM: S3C24XX: Fix mess with gpio {set,get}_pull callbacks 2010-12-08 01:04:56 +00:00
plat-spear
plat-stmp3xxx
plat-tcc
plat-versatile
tools ARM: Update mach-types 2010-12-12 23:31:02 +00:00
vfp ARM: 6498/1: vfp: Correct data alignment for CONFIG_THUMB2_KERNEL 2010-11-30 13:44:23 +00:00
Kconfig ARM: 6534/1: Make CONFIG_FPE_NWFPE depend on !CONFIG_THUMB2_KERNEL 2010-12-14 22:23:34 +00:00
Kconfig-nommu
Kconfig.debug
Makefile