svn commit: r209314 - in head/sys/mips: include mips

Jayachandran C. jchandra at FreeBSD.org
Fri Jun 18 20:07:31 UTC 2010


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]);
 		}
 	}
 


More information about the svn-src-all mailing list