Date: Fri, 18 Jun 2010 20:07:31 +0000 (UTC) From: "Jayachandran C." <jchandra@FreeBSD.org> To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r209314 - in head/sys/mips: include mips Message-ID: <201006182007.o5IK7V7h058801@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: jchandra Date: Fri Jun 18 20:07:30 2010 New Revision: 209314 URL: http://svn.freebsd.org/changeset/base/209314 Log: Merge jmallett@'s n64 work into HEAD - changeset 5 Remove unnecessary locking and sched_pin() call while creating a temporary mapping. Changes from http://svn.freebsd.org/base/user/jmallett/octeon Approved by: rrs (mentor), jmallett Modified: head/sys/mips/include/pmap.h head/sys/mips/mips/pmap.c Modified: head/sys/mips/include/pmap.h ============================================================================== --- head/sys/mips/include/pmap.h Fri Jun 18 18:51:09 2010 (r209313) +++ head/sys/mips/include/pmap.h Fri Jun 18 20:07:30 2010 (r209314) @@ -116,12 +116,6 @@ extern struct pmap kernel_pmap_store; #define PMAP_TRYLOCK(pmap) mtx_trylock(&(pmap)->pm_mtx) #define PMAP_UNLOCK(pmap) mtx_unlock(&(pmap)->pm_mtx) -#define PMAP_LGMEM_LOCK_INIT(sysmap) mtx_init(&(sysmap)->lock, "pmap-lgmem", \ - "per-cpu-map", (MTX_DEF| MTX_DUPOK)) -#define PMAP_LGMEM_LOCK(sysmap) mtx_lock(&(sysmap)->lock) -#define PMAP_LGMEM_UNLOCK(sysmap) mtx_unlock(&(sysmap)->lock) -#define PMAP_LGMEM_DESTROY(sysmap) mtx_destroy(&(sysmap)->lock) - /* * For each vm_page_t, there is a list of all currently valid virtual * mappings of that page. An entry is a pv_entry_t, the list is pv_table. Modified: head/sys/mips/mips/pmap.c ============================================================================== --- head/sys/mips/mips/pmap.c Fri Jun 18 18:51:09 2010 (r209313) +++ head/sys/mips/mips/pmap.c Fri Jun 18 20:07:30 2010 (r209314) @@ -195,7 +195,6 @@ static void *pmap_ptpgzone_allocf(uma_zo static uma_zone_t ptpgzone; struct local_sysmaps { - struct mtx lock; vm_offset_t base; uint16_t valid1, valid2; }; @@ -214,11 +213,9 @@ static struct local_sysmaps sysmap_lmem[ struct local_sysmaps *sysm; \ pt_entry_t *pte, npte; \ \ + intr = intr_disable(); \ cpu = PCPU_GET(cpuid); \ sysm = &sysmap_lmem[cpu]; \ - PMAP_LGMEM_LOCK(sysm); \ - intr = intr_disable(); \ - sched_pin(); \ va = sysm->base; \ npte = TLBLO_PA_TO_PFN(phys) | \ PTE_RW | PTE_V | PTE_G | PTE_W | PTE_CACHE; \ @@ -231,11 +228,9 @@ static struct local_sysmaps sysmap_lmem[ struct local_sysmaps *sysm; \ pt_entry_t *pte, npte; \ \ + intr = intr_disable(); \ cpu = PCPU_GET(cpuid); \ sysm = &sysmap_lmem[cpu]; \ - PMAP_LGMEM_LOCK(sysm); \ - intr = intr_disable(); \ - sched_pin(); \ va1 = sysm->base; \ va2 = sysm->base + PAGE_SIZE; \ npte = TLBLO_PA_TO_PFN(phys1) | \ @@ -258,9 +253,7 @@ static struct local_sysmaps sysmap_lmem[ *pte = PTE_G; \ tlb_invalidate_address(kernel_pmap, sysm->base + PAGE_SIZE); \ sysm->valid2 = 0; \ - sched_unpin(); \ - intr_restore(intr); \ - PMAP_LGMEM_UNLOCK(sysm); + intr_restore(intr) pd_entry_t pmap_segmap(pmap_t pmap, vm_offset_t va) @@ -436,7 +429,6 @@ again: sysmap_lmem[i].base = virtual_avail; virtual_avail += PAGE_SIZE * 2; sysmap_lmem[i].valid1 = sysmap_lmem[i].valid2 = 0; - PMAP_LGMEM_LOCK_INIT(&sysmap_lmem[i]); } }
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201006182007.o5IK7V7h058801>