Date: Fri, 2 Apr 2010 02:17:15 +0000 (UTC) From: Juli Mallett <jmallett@FreeBSD.org> To: src-committers@freebsd.org, svn-src-user@freebsd.org Subject: svn commit: r206062 - in user/jmallett/octeon/sys/mips: include mips Message-ID: <201004020217.o322HFSf017568@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: jmallett Date: Fri Apr 2 02:17:15 2010 New Revision: 206062 URL: http://svn.freebsd.org/changeset/base/206062 Log: Go back to 64-bit PTEs on N64. Nothing much has been updated for this but some format strings. Ifdef out some code that's only used by the recursive mappings that are used to map >=512mb pages in the page table on O32 and N32. Modified: user/jmallett/octeon/sys/mips/include/pte.h user/jmallett/octeon/sys/mips/mips/pmap.c user/jmallett/octeon/sys/mips/mips/trap.c Modified: user/jmallett/octeon/sys/mips/include/pte.h ============================================================================== --- user/jmallett/octeon/sys/mips/include/pte.h Fri Apr 2 01:53:48 2010 (r206061) +++ user/jmallett/octeon/sys/mips/include/pte.h Fri Apr 2 02:17:15 2010 (r206062) @@ -83,7 +83,7 @@ struct tlb { int tlb_lo1; }; -typedef int32_t pt_entry_t; +typedef unsigned long pt_entry_t; typedef pt_entry_t *pd_entry_t; #define PDESIZE sizeof(pd_entry_t) /* for assembly files */ Modified: user/jmallett/octeon/sys/mips/mips/pmap.c ============================================================================== --- user/jmallett/octeon/sys/mips/mips/pmap.c Fri Apr 2 01:53:48 2010 (r206061) +++ user/jmallett/octeon/sys/mips/mips/pmap.c Fri Apr 2 02:17:15 2010 (r206062) @@ -974,11 +974,14 @@ pmap_unmap_fpage(vm_paddr_t pa, struct f static int _pmap_unwire_pte_hold(pmap_t pmap, vm_page_t m) { +#if !defined(__mips_n64) vm_offset_t pteva; +#endif /* * unmap the page table page */ +#if !defined(__mips_n64) pteva = (vm_offset_t)pmap->pm_segtab[m->pindex]; if (pteva >= VM_MIN_KERNEL_ADDRESS) { pmap_kremove(pteva); @@ -988,6 +991,7 @@ _pmap_unwire_pte_hold(pmap_t pmap, vm_pa ("_pmap_unwire_pte_hold: 0x%0lx is not in kseg0", (long)pteva)); } +#endif pmap->pm_segtab[m->pindex] = 0; --pmap->pm_stats.resident_count; @@ -1285,6 +1289,7 @@ pmap_release(pmap_t pmap) ptdva = (vm_offset_t)pmap->pm_segtab; ptdpg = PHYS_TO_VM_PAGE(vtophys(ptdva)); +#if !defined(__mips_n64) if (ptdva >= VM_MIN_KERNEL_ADDRESS) { pmap_kremove(ptdva); kmem_free(kernel_map, ptdva, PAGE_SIZE); @@ -1292,6 +1297,7 @@ pmap_release(pmap_t pmap) KASSERT(MIPS_IS_KSEG0_ADDR(ptdva), ("pmap_release: 0x%0lx is not in kseg0", (long)ptdva)); } +#endif ptdpg->wire_count--; atomic_subtract_int(&cnt.v_wire_count, 1); @@ -2024,7 +2030,7 @@ validate: if (origpte & PTE_M) { KASSERT((origpte & PTE_RW), ("pmap_enter: modified page not writable:" - " va: %p, pte: 0x%x", (void *)va, origpte)); + " va: %p, pte: 0x%lx", (void *)va, origpte)); if (page_is_managed(opa)) vm_page_dirty(om); } @@ -2718,7 +2724,7 @@ pmap_remove_pages(pmap_t pmap) m = PHYS_TO_VM_PAGE(mips_tlbpfn_to_paddr(tpte)); KASSERT(m < &vm_page_array[vm_page_array_size], - ("pmap_remove_pages: bad tpte %x", tpte)); + ("pmap_remove_pages: bad tpte %lx", tpte)); pv->pv_pmap->pm_stats.resident_count--; Modified: user/jmallett/octeon/sys/mips/mips/trap.c ============================================================================== --- user/jmallett/octeon/sys/mips/mips/trap.c Fri Apr 2 01:53:48 2010 (r206061) +++ user/jmallett/octeon/sys/mips/mips/trap.c Fri Apr 2 02:17:15 2010 (r206062) @@ -1349,7 +1349,7 @@ log_illegal_instruction(const char *msg, if (!(pc & 3) && useracc((caddr_t)(intptr_t)pc, sizeof(int) * 4, VM_PROT_READ)) { /* dump page table entry for faulting instruction */ - log(LOG_ERR, "Page table info for pc address %#jx: pde = %p, pte = %#x\n", + log(LOG_ERR, "Page table info for pc address %#jx: pde = %p, pte = %#lx\n", (intmax_t)pc, (void *)(intptr_t)*pdep, ptep ? *ptep : 0); addr = (unsigned int *)(intptr_t)pc; @@ -1358,7 +1358,7 @@ log_illegal_instruction(const char *msg, log(LOG_ERR, "%08x %08x %08x %08x\n", addr[0], addr[1], addr[2], addr[3]); } else { - log(LOG_ERR, "pc address %#jx is inaccessible, pde = %p, pte = %#x\n", + log(LOG_ERR, "pc address %#jx is inaccessible, pde = %p, pte = %#lx\n", (intmax_t)pc, (void *)(intptr_t)*pdep, ptep ? *ptep : 0); } } @@ -1413,7 +1413,7 @@ log_bad_page_fault(char *msg, struct tra (trap_type != T_BUS_ERR_IFETCH) && useracc((caddr_t)(intptr_t)pc, sizeof(int) * 4, VM_PROT_READ)) { /* dump page table entry for faulting instruction */ - log(LOG_ERR, "Page table info for pc address %#jx: pde = %p, pte = %#x\n", + log(LOG_ERR, "Page table info for pc address %#jx: pde = %p, pte = %#lx\n", (intmax_t)pc, (void *)(intptr_t)*pdep, ptep ? *ptep : 0); addr = (unsigned int *)(intptr_t)pc; @@ -1422,7 +1422,7 @@ log_bad_page_fault(char *msg, struct tra log(LOG_ERR, "%08x %08x %08x %08x\n", addr[0], addr[1], addr[2], addr[3]); } else { - log(LOG_ERR, "pc address %#jx is inaccessible, pde = %p, pte = %#x\n", + log(LOG_ERR, "pc address %#jx is inaccessible, pde = %p, pte = %#lx\n", (intmax_t)pc, (void *)(intptr_t)*pdep, ptep ? *ptep : 0); } /* panic("Bad trap");*/
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201004020217.o322HFSf017568>