diff options
author | Vineet Gupta <vgupta@synopsys.com> | 2013-05-09 12:24:51 -0400 |
---|---|---|
committer | Vineet Gupta <vgupta@synopsys.com> | 2013-05-09 12:29:46 -0400 |
commit | 4102b53392d6397d80b6e09b516517efacf7ea77 (patch) | |
tree | b79aa87af1b3a1ff39b4a00b889cb806dfe32ae7 /arch/arc/Kconfig | |
parent | 6ec18a81b22ab2b40df8424f2b5fc6be20ccad87 (diff) |
ARC: [mm] Aliasing VIPT dcache support 2/4
This is the meat of the series which prevents any dcache alias creation
by always keeping the U and K mapping of a page congruent.
If a mapping already exists, and other tries to access the page, prev
one is flushed to physical page (wback+inv)
Essentially flush_dcache_page()/copy_user_highpage() create K-mapping
of a page, but try to defer flushing, unless U-mapping exist.
When page is actually mapped to userspace, update_mmu_cache() flushes
the K-mapping (in certain cases this can be optimised out)
Additonally flush_cache_mm(), flush_cache_range(), flush_cache_page()
handle the puring of stale userspace mappings on exit/munmap...
flush_anon_page() handles the existing U-mapping for anon page before
kernel reads it via the GUP path.
Note that while not complete, this is enough to boot a simple
dynamically linked Busybox based rootfs
Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
Diffstat (limited to 'arch/arc/Kconfig')
-rw-r--r-- | arch/arc/Kconfig | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/arch/arc/Kconfig b/arch/arc/Kconfig index 491ae7923b10..5917099470ea 100644 --- a/arch/arc/Kconfig +++ b/arch/arc/Kconfig | |||
@@ -182,6 +182,10 @@ config ARC_CACHE_PAGES | |||
182 | Note that Global I/D ENABLE + Per Page DISABLE works but corollary | 182 | Note that Global I/D ENABLE + Per Page DISABLE works but corollary |
183 | Global DISABLE + Per Page ENABLE won't work | 183 | Global DISABLE + Per Page ENABLE won't work |
184 | 184 | ||
185 | config ARC_CACHE_VIPT_ALIASING | ||
186 | bool "Support VIPT Aliasing D$" | ||
187 | default n | ||
188 | |||
185 | endif #ARC_CACHE | 189 | endif #ARC_CACHE |
186 | 190 | ||
187 | config ARC_HAS_ICCM | 191 | config ARC_HAS_ICCM |