diff options
author | Chris Metcalf <cmetcalf@tilera.com> | 2013-08-09 16:09:41 -0400 |
---|---|---|
committer | Chris Metcalf <cmetcalf@tilera.com> | 2013-08-30 11:56:34 -0400 |
commit | abe3265a6d2e5e805361e0fea3346622f3199d68 (patch) | |
tree | ff4c4463c2715fc06a62916a4a9d5fa28c996214 | |
parent | 6f0142d501b35468d910b9f36b6853dbd8dc5ad5 (diff) |
tile: do less L1 I-cache eviction
We had been doing an automatic full eviction of the L1 I$
everywhere whenever we did a kernel-space TLB flush. It turns
out this isn't necessary, since all the callers already handle
doing a flush if necessary.
Signed-off-by: Chris Metcalf <cmetcalf@tilera.com>
-rw-r--r-- | arch/tile/kernel/tlb.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/arch/tile/kernel/tlb.c b/arch/tile/kernel/tlb.c index 3fd54d5bbd4c..f23b53515671 100644 --- a/arch/tile/kernel/tlb.c +++ b/arch/tile/kernel/tlb.c | |||
@@ -91,8 +91,14 @@ void flush_tlb_all(void) | |||
91 | } | 91 | } |
92 | } | 92 | } |
93 | 93 | ||
94 | /* | ||
95 | * Callers need to flush the L1I themselves if necessary, e.g. for | ||
96 | * kernel module unload. Otherwise we assume callers are not using | ||
97 | * executable pgprot_t's. Using EVICT_L1I means that dataplane cpus | ||
98 | * will get an unnecessary interrupt otherwise. | ||
99 | */ | ||
94 | void flush_tlb_kernel_range(unsigned long start, unsigned long end) | 100 | void flush_tlb_kernel_range(unsigned long start, unsigned long end) |
95 | { | 101 | { |
96 | flush_remote(0, HV_FLUSH_EVICT_L1I, cpu_online_mask, | 102 | flush_remote(0, 0, NULL, |
97 | start, end - start, PAGE_SIZE, cpu_online_mask, NULL, 0); | 103 | start, end - start, PAGE_SIZE, cpu_online_mask, NULL, 0); |
98 | } | 104 | } |