freebsd-skq/sys
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
..
amd64 Add hints for i8254 timer on i386 and amd64. Some people report about 2010-07-16 23:21:46 +00:00
arm Fix several un-/signedness bugs of r210290 and r210293. Add one more check. 2010-07-20 15:48:29 +00:00
boot Provide support in loader for booting 64-bit PowerPC kernels. Like amd64, 2010-07-12 00:49:22 +00:00
bsm
cam ATA device reset starts probe sequence from the beginning. If reset caused 2010-07-06 19:05:41 +00:00
cddl To improve latency, lower default vfs.zfs.vdev.max_pending from 35 to 10 2010-07-20 05:22:14 +00:00
compat Remove proc locking, it's not needed after r210132. 2010-07-17 15:52:11 +00:00
conf Update the port of FreeBSD to Cavium Octeon to use the Cavium Simple Executive 2010-07-20 19:25:11 +00:00
contrib Update the port of FreeBSD to Cavium Octeon to use the Cavium Simple Executive 2010-07-20 19:25:11 +00:00
crypto Use the fpu_kern_enter() interface to properly separate usermode FPU 2010-06-05 16:00:53 +00:00
ddb One more use for _SIG_VALID. 2010-07-12 10:18:10 +00:00
dev Fix several un-/signedness bugs of r210290 and r210293. Add one more check. 2010-07-20 15:48:29 +00:00
fs For the experimental NFSv4 server's dumplocks operation, add the 2010-07-19 23:33:42 +00:00
gdb
geom Fixed cache size decoding read from a label. 2010-07-14 08:22:00 +00:00
gnu
i386 Store fsbase and gsbase in the right fields of the mcontext. They were 2010-07-20 12:36:36 +00:00
ia64 Add acpi_find_table() -- a convenience function for looking up an 2010-07-07 20:07:33 +00:00
isa When we are not switching VTs, just mark all buffer to be updated. 2010-07-15 23:11:51 +00:00
kern Fix several un-/signedness bugs of r210290 and r210293. Add one more check. 2010-07-20 15:48:29 +00:00
kgssapi
libkern Provide memchr() in the libkern. 2010-06-02 17:27:23 +00:00
mips Redo the page table page allocation on MIPS, as suggested by 2010-07-21 09:27:00 +00:00
modules Add OpenSolaris atomics for powerpc64 and connect ZFS to the build on 2010-07-17 13:34:01 +00:00
net whitespace cleanup 2010-07-15 14:41:59 +00:00
net80211 - Introduce IEEE80211_KEY_NOREPLAY, a per-key flag to ignore replay 2010-07-01 20:50:12 +00:00
netatalk
netgraph Remove defunct email address from header as well. 2010-07-06 16:55:39 +00:00
netinet - Move common code from the hook functions that fills in a packet node struct to 2010-07-18 05:09:10 +00:00
netinet6 Fix our version of IPv6 address representation. 2010-05-19 00:35:47 +00:00
netipsec MFp4 @178283: 2010-05-24 16:27:47 +00:00
netipx
netnatm
netncp
netsmb
nfs
nfsclient Retire the NFS access cache timestamp structure. It was used in VOP_OPEN() 2010-07-15 19:40:48 +00:00
nfsserver
nlm
opencrypto Use the fpu_kern_enter() interface to properly separate usermode FPU 2010-06-05 16:00:53 +00:00
pc98 Store fsbase and gsbase in the right fields of the mcontext. They were 2010-07-20 12:36:36 +00:00
pci Implement WOL. WOL is supported on RTL8139B or newer controllers. 2010-07-19 18:01:06 +00:00
powerpc Eliminate FDT_IMMR_VA define. 2010-07-19 18:47:18 +00:00
rpc
security
sparc64 Allocate proper ammount of memory for interrupt names on sparc64 and 2010-07-16 22:09:29 +00:00
sun4v Allocate proper ammount of memory for interrupt names on sparc64 and 2010-07-16 22:09:29 +00:00
sys Fix typo in comment. 2010-07-20 11:20:45 +00:00
teken
tools Flattened Device Tree helper scripts. 2010-06-02 17:22:38 +00:00
ufs Revert the previous commit. The race is not applicable to the lockmgr 2010-07-16 19:52:03 +00:00
vm Redo the page table page allocation on MIPS, as suggested by 2010-07-21 09:27:00 +00:00
x86 Fix several un-/signedness bugs of r210290 and r210293. Add one more check. 2010-07-20 15:48:29 +00:00
xdr
xen
Makefile