kernel-ark/arch/arc
Vineet Gupta 24603fdd19 ARC: [mm] optimise icache flush for user mappings
ARC icache doesn't snoop dcache thus executable pages need to be made
coherent before mapping into userspace in flush_icache_page().

However ARC700 CDU (hardware cache flush module) requires both vaddr
(index in cache) as well as paddr (tag match) to correctly identify a
line in the VIPT cache. A typical ARC700 SoC has aliasing icache, thus
the paddr only based flush_icache_page() API couldn't be implemented
efficiently. It had to loop thru all possible alias indexes and perform
the invalidate operation (ofcourse the cache op would only succeed at
the index(es) where tag matches - typically only 1, but the cost of
visiting all the cache-bins needs to paid nevertheless).

Turns out however that the vaddr (along with paddr) is available in
update_mmu_cache() hence better suits ARC icache flush semantics.
With both vaddr+paddr, exactly one flush operation per line is done.

Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
2013-05-07 19:08:12 +05:30
..
boot ARC: Add support for nSIM OSCI System C model 2013-05-07 13:44:00 +05:30
configs ARC: Add support for nSIM OSCI System C model 2013-05-07 13:44:00 +05:30
include ARC: [mm] optimise icache flush for user mappings 2013-05-07 19:08:12 +05:30
kernel ARC: Prepare interrupt code for external controllers 2013-05-07 13:43:58 +05:30
lib ARC: String library 2013-02-11 20:00:35 +05:30
mm ARC: [mm] optimise icache flush for user mappings 2013-05-07 19:08:12 +05:30
oprofile ARC: OProfile support 2013-02-15 23:16:00 +05:30
plat-arcfpga ARC: Add support for nSIM OSCI System C model 2013-05-07 13:44:00 +05:30
plat-tb10x ARC: [TB10x] Add support for TB10x platform 2013-05-07 13:43:59 +05:30
Kbuild ARC: Build system: Makefiles, Kconfig, Linker script 2013-02-11 20:00:25 +05:30
Kconfig ARC: [TB10x] Add support for TB10x platform 2013-05-07 13:43:59 +05:30
Kconfig.debug ARC: Build system: Makefiles, Kconfig, Linker script 2013-02-11 20:00:25 +05:30
Makefile ARC: [TB10x] Add support for TB10x platform 2013-05-07 13:43:59 +05:30