aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPaul Mundt <lethal@linux-sh.org>2007-11-18 23:00:32 -0500
committerPaul Mundt <lethal@linux-sh.org>2007-11-18 23:00:32 -0500
commit1c6b2ca5e0939bf8b5d1a11f1646f25189ecd447 (patch)
treecec70f706b92e968ab9f56c16d670e65dc9c9f54
parent0349337467dc6039dcfb225074944ae944e7b34e (diff)
sh: Kill off UTLB flush in fast-path.
The __do_page_fault() fast-path contains a UTLB flush in order to force an ITLB reload, this isn't needed in practice as the ITLB is auto-reloaded from the UTLB anyways, which is already displaced by the manual 'ldtlb' in the update_mmu_cache() path. This provides a measurable speed up in the TLB miss fast-path. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
-rw-r--r--arch/sh/mm/fault.c8
1 files changed, 0 insertions, 8 deletions
diff --git a/arch/sh/mm/fault.c b/arch/sh/mm/fault.c
index f33cedb353fc..c56a5fabcd0f 100644
--- a/arch/sh/mm/fault.c
+++ b/arch/sh/mm/fault.c
@@ -304,14 +304,6 @@ asmlinkage int __kprobes __do_page_fault(struct pt_regs *regs,
304 entry = pte_mkdirty(entry); 304 entry = pte_mkdirty(entry);
305 entry = pte_mkyoung(entry); 305 entry = pte_mkyoung(entry);
306 306
307#ifdef CONFIG_CPU_SH4
308 /*
309 * ITLB is not affected by "ldtlb" instruction.
310 * So, we need to flush the entry by ourselves.
311 */
312 local_flush_tlb_one(get_asid(), address & PAGE_MASK);
313#endif
314
315 set_pte(pte, entry); 307 set_pte(pte, entry);
316 update_mmu_cache(NULL, address, entry); 308 update_mmu_cache(NULL, address, entry);
317 ret = 0; 309 ret = 0;