diff options
author | Vineet Gupta <vgupta@synopsys.com> | 2013-04-12 02:48:25 -0400 |
---|---|---|
committer | Vineet Gupta <vgupta@synopsys.com> | 2013-05-07 09:38:12 -0400 |
commit | 7586bf7286097cd47299c44192c30e01f0d55391 (patch) | |
tree | 34f071c6a0f34bd7c256e332550c25887d36fb81 /lib | |
parent | 24603fdd19d978fcc0d089d92370ee1aa3a71e84 (diff) |
ARC: [mm] optimise icache flush for kernel mappings
This change continues the theme from prev commit - this time icache
handling for kernel's own code modification (vmalloc: loadable modules,
breakpoints for kprobes/kgdb...)
flush_icache_range() calls the CDU icache helper with vaddr to enable
exact line invalidate.
For a true kernel-virtual mapping, the vaddr is actually virtual hence
valid as index into cache. For kprobes breakpoint however, the vaddr arg
is actually paddr - since that's how normal kernel is mapped in ARC
memory map. This implies that CDU will use the same addr for
indexing as for tag match - which is fine since kernel code would only
have that "implicit" mapping and none other.
This should speed up module loading significantly - specially on default
ARC700 icache configurations (32k) which alias.
Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
Diffstat (limited to 'lib')
0 files changed, 0 insertions, 0 deletions