freebsd-skq/sys/mips/include
jchandra 10dfd55de4 Redo the page table page allocation on MIPS, as suggested by
alc@.

The UMA zone based allocation is replaced by a scheme that creates
a new free page list for the KSEG0 region, and a new function
in sys/vm that allocates pages from a specific free page list.

This also fixes a race condition introduced by the UMA based page table
page allocation code. Dropping the page queue and pmap locks before
the call to uma_zfree, and re-acquiring them afterwards  will introduce
a race condtion(noted by alc@).

The changes are :
- Revert the earlier changes in MIPS pmap.c that added UMA zone for
page table pages.
- Add a new freelist VM_FREELIST_HIGHMEM to MIPS vmparam.h for memory that
is not directly mapped (in 32bit kernel). Normal page allocations will first
try the HIGHMEM freelist and then the default(direct mapped) freelist.
- Add a new function 'vm_page_t vm_page_alloc_freelist(int flind, int
order, int req)' to vm/vm_page.c to allocate a page from a specified
freelist. The MIPS page table pages will be allocated using this function
from the freelist containing direct mapped pages.
- Move the page initialization code from vm_phys_alloc_contig() to a
new function vm_page_alloc_init(), and use this function to initialize
pages in vm_page_alloc_freelist() too.
- Split the  function vm_phys_alloc_pages(int pool, int order) to create
vm_phys_alloc_freelist_pages(int flind, int pool, int order), and use
this function from both vm_page_alloc_freelist() and vm_phys_alloc_pages().

Reviewed by:	alc
2010-07-21 09:27:00 +00:00
..
_align.h Merge from projects/mips to head by hand: 2010-01-10 19:50:24 +00:00
_bus.h Update the port of FreeBSD to Cavium Octeon to use the Cavium Simple Executive 2010-07-20 19:25:11 +00:00
_inttypes.h Adjust limits and formats for ABIs with 64-bit longs. 2010-04-16 23:54:56 +00:00
_limits.h Adjust limits and formats for ABIs with 64-bit longs. 2010-04-16 23:54:56 +00:00
_stdint.h
_types.h Merge from projects/mips to head by hand: 2010-01-10 19:50:24 +00:00
asm.h Move common macros into asm.h. Replace MIPS_CPU_NOP_DELAY with 2010-07-16 06:35:17 +00:00
atomic.h Merge from projects/mips to head by hand: 2010-01-10 19:50:24 +00:00
bootinfo.h
bswap.h
bus_dma.h
bus.h Add BUS_SPACE_UNRESTRICTED and define it to be ~0, just like all the 2010-04-08 19:34:55 +00:00
cache_mipsNN.h Update the port of FreeBSD to Cavium Octeon to use the Cavium Simple Executive 2010-07-20 19:25:11 +00:00
cache_r4k.h
cache.h Merge from projects/mips to head by hand: 2010-01-10 19:50:24 +00:00
cdefs.h Update macros for multiple ABI support from NetBSD. 2010-03-02 07:27:30 +00:00
clock.h Remove unused stuff from cpu.h. 2010-07-15 01:58:20 +00:00
clockvar.h
cpu.h Use #define for get_cyclecount rather than inline function. 2010-07-16 06:09:51 +00:00
cpufunc.h Update the port of FreeBSD to Cavium Octeon to use the Cavium Simple Executive 2010-07-20 19:25:11 +00:00
cpuinfo.h Remove some unused cruft. 2010-03-04 05:37:19 +00:00
cpuregs.h Update the port of FreeBSD to Cavium Octeon to use the Cavium Simple Executive 2010-07-20 19:25:11 +00:00
cputypes.h
db_machdep.h Use cpuregs.h spellings over the cpu.h spellings. 2010-07-14 00:52:29 +00:00
elf.h - Copy symbol-related tables (.symtab and .strtab) to the end of 2010-01-24 02:59:22 +00:00
endian.h Merge from projects/mips to head by hand: 2010-01-10 19:50:24 +00:00
exec.h
float.h Merge from projects/mips to head by hand: 2010-01-10 19:50:24 +00:00
floatingpoint.h
fls64.h With this commit our friend RMI will now compile. I have 2009-10-30 08:53:11 +00:00
fpu.h It appears that none of the contents of this file are necessary, so 2009-02-15 20:05:13 +00:00
frame.h Remove stray __P() 2009-02-15 01:12:16 +00:00
gdb_machdep.h
hwfunc.h Adds JC's cleanup patches that fix it so 2010-05-18 04:02:34 +00:00
ieee.h
ieeefp.h
in_cksum.h
intr_machdep.h Some fixes to the current RMI interrupt handling, changes in this patch are: 2010-02-20 16:30:29 +00:00
iodev.h Remove the unused major/minor numbers from iodev and memdev. 2008-06-25 07:45:31 +00:00
kdb.h Stash the context of the running thread at the time an IPI_STOP is received 2010-03-11 07:17:14 +00:00
limits.h
locore.h This pushes all of JC's patches that I have in place. I 2010-05-16 19:43:48 +00:00
md_var.h Remove unused stuff from cpu.h. 2010-07-15 01:58:20 +00:00
memdev.h Remove the unused major/minor numbers from iodev and memdev. 2008-06-25 07:45:31 +00:00
metadata.h
minidump.h
mips_opcode.h
mp_watchdog.h
mutex.h
param.h This pushes all of JC's patches that I have in place. I 2010-05-16 19:43:48 +00:00
pcb.h o) Make pcb_onfault a pointer rather than an obscure integer value. 2010-04-17 09:42:07 +00:00
pci_cfgreg.h
pcpu.h SMP support for the mips port. 2010-02-09 06:24:43 +00:00
pmap.h Merge jmallett@'s n64 work into HEAD - changeset 8 2010-07-08 14:49:55 +00:00
pmc_mdep.h Add support for hwpmc(4) on the MIPS 24K, 32 bit, embedded processor. 2010-03-03 15:05:58 +00:00
ppireg.h
proc.h Style: use #define<TAB> instead of #define<SPACE>. 2010-04-27 09:48:43 +00:00
profile.h o) Use inline functions to access coprocessor 0 registers rather than external 2010-04-17 01:17:31 +00:00
pte.h Merge jmallett@'s n64 work into HEAD 2010-07-12 07:42:42 +00:00
ptrace.h
reg.h
regdef.h Merge from projects/mips to head by hand: 2010-01-10 19:50:24 +00:00
regnum.h o) Eliminate the "stand" frame and its use. Use CALLFRAME_* everywhere. 2010-04-19 07:34:26 +00:00
reloc.h
resource.h
runq.h Use 64 bit type for rqb_word_t in n64 kernel. 2010-07-08 15:37:16 +00:00
setjmp.h Merge jmallett@'s n64 work into HEAD - changeset 7 2010-06-24 08:08:43 +00:00
sf_buf.h o) Use the direct map where possible for uiomove_fromphys, based on code from 2010-04-16 23:48:28 +00:00
sigframe.h
signal.h
smp.h This pushes all of JC's patches that I have in place. I 2010-05-16 19:43:48 +00:00
stdarg.h
sysarch.h Merge r195128 from project/mips to head. 2010-01-09 04:59:57 +00:00
timerreg.h
tlb.h Move TLB definitions to tlb.h 2010-07-15 03:56:08 +00:00
trap.h o) Use inline functions to access coprocessor 0 registers rather than external 2010-04-17 01:17:31 +00:00
ucontext.h Update macros for multiple ABI support from NetBSD. 2010-03-02 07:27:30 +00:00
varargs.h
vm.h Merge jmallett@'s n64 work into HEAD - changeset 6 2010-06-23 19:42:01 +00:00
vmparam.h Redo the page table page allocation on MIPS, as suggested by 2010-07-21 09:27:00 +00:00