freebsd-dev/sys
Alan Cox 9ee2165f5d Eliminate checks for a page having a NULL object in vm_pageout_scan()
and vm_pageout_page_stats().  These checks were recently introduced by
the first page locking commit, r207410, but they are not needed.  At
the same time, eliminate some redundant accesses to the page's object
field.  (These accesses should have neen eliminated by r207410.)

Make the assertion in vm_page_flag_set() stricter.  Specifically, only
managed pages should have PG_WRITEABLE set.

Add a comment documenting an assertion to vm_page_flag_clear().

It has long been the case that fictitious pages have their wire count
permanently set to one.  Add comments to vm_page_wire() and
vm_page_unwire() documenting this.  Add assertions to these functions
as well.

Update the comment describing vm_page_unwire().  Much of the old
comment had little to do with vm_page_unwire(), but a lot to do with
_vm_page_deactivate().  Move relevant parts of the old comment to
_vm_page_deactivate().

Only pages that belong to an object can be paged out.  Therefore, it
is pointless for vm_page_unwire() to acquire the page queues lock and
enqueue such pages in one of the paging queues.  Generally speaking,
such pages are immediately freed after the call to vm_page_unwire().
Previously, it was the call to vm_page_free() that reacquired the page
queues lock and removed these pages from the paging queues.  Now, we
will never acquire the page queues lock for this case.  (It is also
worth noting that since both vm_page_unwire() and vm_page_free()
occurred with the page locked, the page daemon never saw the page with
its object field set to NULL.)

Change the panic with vm_page_unwire() to provide a more precise message.

Reviewed by:	kib@
2010-06-14 19:54:19 +00:00
..
amd64 Fix bug introduced in SVN rev 194985. When calling pic_assign_cpu() 2010-06-14 07:38:53 +00:00
arm Temporarily bring back the ARM bootinfo (and make tinderbox happy). 2010-06-14 16:05:21 +00:00
boot Pass the -N flag to linked via -Wl. 2010-06-14 17:02:19 +00:00
bsm
cam Rearrange how things are done to avoid dereferencing stale pointers in 2010-06-08 22:46:44 +00:00
cddl Fix arc_read_done may try to byteswap undefined data (sparc related) 2010-06-12 11:28:46 +00:00
compat ANSIfy prototypes in subr_usbd.c. 2010-06-12 12:19:08 +00:00
conf Convert Marvell ARM platforms to FDT convention. 2010-06-13 13:28:53 +00:00
contrib Provide kernel level headers for the libfdt code. 2010-06-02 17:24:41 +00:00
crypto Use the fpu_kern_enter() interface to properly separate usermode FPU 2010-06-05 16:00:53 +00:00
ddb MFp4 @178364: 2010-05-24 16:41:05 +00:00
dev Fix TX retry rate handling. tx->linkq is an index to a rate table 2010-06-14 18:26:10 +00:00
fs In NFS clients, instead of inconsistently using #ifdef 2010-06-13 05:24:27 +00:00
gdb
geom fix a few cases where a string is passed via format argument instead of 2010-06-11 19:27:21 +00:00
gnu Move checking against RLIMIT_FSIZE into one place, vn_rlimit_fsize(). 2010-05-05 16:44:25 +00:00
i386 Fix bug introduced in SVN rev 194985. When calling pic_assign_cpu() 2010-06-14 07:38:53 +00:00
ia64 The ptc.g operation for the Mckinley and Madison processors has the 2010-06-12 01:45:29 +00:00
isa Do not attempt to switch to the same VTs between suspend and resume. 2010-05-26 16:37:54 +00:00
kern Virtualize pci_remap_msi_irq() call from general MSI code. It allows MSI 2010-06-14 07:10:37 +00:00
kgssapi
libkern Provide memchr() in the libkern. 2010-06-02 17:27:23 +00:00
mips Relax one of the new assertions in pmap_enter() a little. Specifically, 2010-06-11 15:49:39 +00:00
modules New netgraph node ng_patch(4). It performs data modification of packets 2010-06-09 12:25:57 +00:00
net Update several places that iterate over CPUs to use CPU_FOREACH(). 2010-06-11 18:46:34 +00:00
net80211 Remove GNU-style struct initialization. 2010-06-12 07:02:43 +00:00
netatalk
netgraph Style(9) fixes: 2010-06-10 16:45:30 +00:00
netinet 3 Fixes - 2010-06-11 03:54:00 +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 Switch to our preferred 2-clause BSD license. 2010-04-07 16:50:38 +00:00
netsmb Switch to our preferred 2-clause BSD license. 2010-04-07 16:50:38 +00:00
nfs Factor out the code shared between NFS client and server into its own 2010-02-16 20:00:21 +00:00
nfsclient In NFS clients, instead of inconsistently using #ifdef 2010-06-13 05:24:27 +00:00
nfsserver Patch the regular NFS server so that it returns ESTALE to the client 2010-03-26 01:19:29 +00:00
nlm
opencrypto Use the fpu_kern_enter() interface to properly separate usermode FPU 2010-06-05 16:00:53 +00:00
pc98 Introduce the x86 kernel interfaces to allow kernel code to use 2010-06-05 15:59:59 +00:00
pci Add new tunable 'net.link.ifqmaxlen' to set default send interface 2010-05-03 07:32:50 +00:00
powerpc Make SMP work on MPC7400-based Apple desktops like the PowerMac3,3. 2010-06-12 21:14:22 +00:00
rpc When the regular NFS server replied to a UDP client out of the replay 2010-03-23 23:03:30 +00:00
security Add a case to make sure that internal audit records get converted 2010-05-04 15:29:07 +00:00
sparc64 Update a branch missed in r207537. 2010-06-13 20:29:55 +00:00
sun4v Relax one of the new assertions in pmap_enter() a little. Specifically, 2010-06-11 15:49:39 +00:00
sys Add a utility macro to simplify calculating an aggregate sum from a DPCPU 2010-06-13 02:39:55 +00:00
teken Just use <stdint.h> instead of <inttypes.h>. We don't need it here. 2010-04-03 17:22:28 +00:00
tools Flattened Device Tree helper scripts. 2010-06-02 17:22:38 +00:00
ufs ffs_softdep: change K&R in function defintions to ANSI prototypes 2010-06-11 18:26:53 +00:00
vm Eliminate checks for a page having a NULL object in vm_pageout_scan() 2010-06-14 19:54:19 +00:00
x86 Virtualize pci_remap_msi_irq() call from general MSI code. It allows MSI 2010-06-14 07:10:37 +00:00
xdr
xen don't hold spin lock across free 2010-02-21 01:12:18 +00:00
Makefile