Date: Fri, 7 Nov 2003 23:30:17 -0800 (PST) From: Juli Mallett <jmallett@FreeBSD.org> To: Perforce Change Reviews <perforce@freebsd.org> Subject: PERFORCE change 41731 for review Message-ID: <200311080730.hA87UH1R034879@repoman.freebsd.org>
index | next in thread | raw e-mail
http://perforce.freebsd.org/chv.cgi?CH=41731 Change 41731 by jmallett@jmallett_dalek on 2003/11/07 23:30:06 Use the TLB more effectively. Affected files ... .. //depot/projects/mips/sys/mips/mips/tlb.c#11 edit Differences ... ==== //depot/projects/mips/sys/mips/mips/tlb.c#11 (text+ko) ==== @@ -110,6 +110,13 @@ printf("pmap %p entering invalid mapping for va %lx to pa %lx [%lx]\n", pmap, (u_long)va, (u_long)pa, (u_long)bits); *pte = MIPS_PA_TO_PFN(pa) | bits; +#if notyet + if ((va >> PAGE_SHIFT) & 1) { + tlb_update(va, pte[-1], pte[0]); + } else { + tlb_update(va, pte[0], pte[1]); + } +#endif } void @@ -144,6 +151,7 @@ tlb_insert(vm_offset_t va, pt_entry_t pte0, pt_entry_t pte1) { u_long ehi; + long i; va &= ~PAGE_MASK; ehi = 0; @@ -153,9 +161,15 @@ ehi |= MIPS_HI_VA_TO_VPN2(va); ehi |= /* asid */0; mips_wr_entryhi(ehi); + mips_tlbp(); + i = mips_rd_index(); mips_wr_entrylo0(pte0 | PG_G); mips_wr_entrylo1(pte1 | PG_G); - mips_tlbwr(); + mips_wr_entryhi(ehi); + if (i < 0) + mips_tlbwr(); + else + mips_tlbwi(); } void @@ -193,7 +207,6 @@ tlb_update(vm_offset_t va, pt_entry_t pte0, pt_entry_t pte1) { va &= ~PAGE_MASK; - tlb_invalidate_page(va); tlb_insert(va, pte0, pte1); }help
Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200311080730.hA87UH1R034879>
