diff options
author | Paul Mundt <lethal@linux-sh.org> | 2007-11-18 23:00:32 -0500 |
---|---|---|
committer | Paul Mundt <lethal@linux-sh.org> | 2007-11-18 23:00:32 -0500 |
commit | 1c6b2ca5e0939bf8b5d1a11f1646f25189ecd447 (patch) | |
tree | cec70f706b92e968ab9f56c16d670e65dc9c9f54 /arch/sh/mm/fault.c | |
parent | 0349337467dc6039dcfb225074944ae944e7b34e (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>
Diffstat (limited to 'arch/sh/mm/fault.c')
-rw-r--r-- | arch/sh/mm/fault.c | 8 |
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; |