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