freebsd-nq/sys/mips
Jayachandran C. 49ca10d40c 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
..
adm5120 Remove some stray ';'s 2010-05-13 01:50:29 +00:00
alchemy Hack to make ALCHEMY compile again... 2010-02-18 19:41:38 +00:00
atheros Add TX-path aligned/unaligned stats for if_arge. 2010-07-08 15:20:57 +00:00
cavium o) Add the "octusb" controller which supports the first port of the Octeon 2010-07-20 19:32:25 +00:00
compile
conf Update the port of FreeBSD to Cavium Octeon to use the Cavium Simple Executive 2010-07-20 19:25:11 +00:00
idt - Call post-boot fixup function in order to get proper static 2010-01-25 00:44:05 +00:00
include Redo the page table page allocation on MIPS, as suggested by 2010-07-21 09:27:00 +00:00
malta Fix MALTA64 build. 2010-04-19 09:03:34 +00:00
mips Redo the page table page allocation on MIPS, as suggested by 2010-07-21 09:27:00 +00:00
rmi Fix for 64 bit compilation. 2010-07-15 16:39:17 +00:00
sentry5 - Call post-boot fixup function in order to get proper static 2010-01-25 00:44:05 +00:00
sibyte Remove redunant machine/cpuregs.h include. 2010-07-13 22:30:27 +00:00