]> err.no Git - linux-2.6/commitdiff
sh: Kill off UTLB flush in fast-path.
authorPaul Mundt <lethal@linux-sh.org>
Mon, 19 Nov 2007 04:00:32 +0000 (13:00 +0900)
committerPaul Mundt <lethal@linux-sh.org>
Mon, 19 Nov 2007 04:00:32 +0000 (13:00 +0900)
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>
arch/sh/mm/fault.c

index f33cedb353fc6af215bc7f86b37120553d8e7532..c56a5fabcd0f9678c01282a384a83ad96dca2c3d 100644 (file)
@@ -304,14 +304,6 @@ asmlinkage int __kprobes __do_page_fault(struct pt_regs *regs,
                entry = pte_mkdirty(entry);
        entry = pte_mkyoung(entry);
 
-#ifdef CONFIG_CPU_SH4
-       /*
-        * ITLB is not affected by "ldtlb" instruction.
-        * So, we need to flush the entry by ourselves.
-        */
-       local_flush_tlb_one(get_asid(), address & PAGE_MASK);
-#endif
-
        set_pte(pte, entry);
        update_mmu_cache(NULL, address, entry);
        ret = 0;