Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

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>

+7 -1
+7 -1
arch/tile/kernel/tlb.c
··· 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 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 103 start, end - start, PAGE_SIZE, cpu_online_mask, NULL, 0); 98 104 }