freebsd-src/sys/vm
Alan Cox 4c8e0452e0 Correct a long-standing error in vm_object_deallocate(). Specifically,
only anonymous default (OBJT_DEFAULT) and swap (OBJT_SWAP) objects should
ever have OBJ_ONEMAPPING set.  However, vm_object_deallocate() was
setting it on device (OBJT_DEVICE) objects.  As a result,
vm_object_page_remove() could be called on a device object and if that
occurred pmap_remove_all() would be called on the device object's pages.
However, a device object's pages are fictitious, and fictitious pages do
not have an initialized pv list (struct md_page).

To date, fictitious pages have been allocated from zeroed memory,
effectively hiding this problem.  Now, however, the conversion of rotting
diagnostics to invariants in the amd64 and i386 pmaps has revealed the
problem.  Specifically, assertion failures have occurred during the
initialization phase of the X server on some hardware.

MFC after: 1 week
Discussed with: Kostik Belousov
Reported by: Michiel Boland
2008-02-24 18:03:56 +00:00
..
default_pager.c
device_pager.c Remove comment that is no longer quite true. 2007-08-18 16:41:31 +00:00
memguard.c Improve memguard a bit: 2005-12-30 11:45:07 +00:00
memguard.h Improve memguard a bit: 2005-12-30 11:45:07 +00:00
phys_pager.c Correct a copy and paste'o in phys_pager.c, we are talking about phys here 2007-10-30 14:48:13 +00:00
pmap.h Add an access type parameter to pmap_enter(). It will be used to implement 2008-01-03 07:34:34 +00:00
redzone.c Modify stack(9) stack_print() and stack_sbuf_print() routines to use new 2007-12-01 22:04:16 +00:00
redzone.h Add buffer corruption protection (RedZone) for kernel's malloc(9). 2006-01-31 11:09:21 +00:00
swap_pager.c VOP_LOCK1() (and so VOP_LOCK()) and VOP_UNLOCK() are only used in 2008-01-13 14:44:15 +00:00
swap_pager.h - Move 'struct swdevt' back into swap_pager.h and expose it to userland. 2007-02-07 17:43:11 +00:00
uma.h Add uma_set_align() interface, which will be called at most once during 2007-02-11 20:13:52 +00:00
uma_core.c Allow recursion on the 'zones' internal UMA zone. 2007-10-11 20:11:27 +00:00
uma_dbg.c
uma_dbg.h
uma_int.h Update stale comment on protecting UMA per-CPU caches: we now use 2007-05-09 22:53:34 +00:00
vm.h Add the superpage reservation type. 2007-12-27 17:08:11 +00:00
vm_contig.c VOP_LOCK1() (and so VOP_LOCK()) and VOP_UNLOCK() are only used in 2008-01-13 14:44:15 +00:00
vm_extern.h Fix for the panic("vm_thread_new: kstack allocation failed") and 2007-11-05 11:36:16 +00:00
vm_fault.c Add an access type parameter to pmap_enter(). It will be used to implement 2008-01-03 07:34:34 +00:00
vm_glue.c Fix for the panic("vm_thread_new: kstack allocation failed") and 2007-11-05 11:36:16 +00:00
vm_init.c
vm_kern.c When one tries to allocate memory with the M_WAITOK flag and we are short in 2008-01-10 08:36:38 +00:00
vm_kern.h The clean_map has been made local to vm_init.c long ago. 2006-11-20 16:23:34 +00:00
vm_map.c In the vm_map_stack(), check for the specified stack region wraparound. 2008-01-04 04:33:13 +00:00
vm_map.h Change unused 'user_wait' argument to 'timo' argument, which will be 2007-11-07 21:56:58 +00:00
vm_meter.c Add a counter for the total number of pages cached and support for 2007-07-27 20:01:22 +00:00
vm_mmap.c Add a new file descriptor type for IPC shared memory objects and use it to 2008-01-08 21:58:16 +00:00
vm_object.c Correct a long-standing error in vm_object_deallocate(). Specifically, 2008-02-24 18:03:56 +00:00
vm_object.h Add a list of reservations to the vm object structure. 2007-12-27 17:56:35 +00:00
vm_page.c Defer setting either PG_CACHED or PG_FREE until after the free page 2008-01-02 04:43:47 +00:00
vm_page.h Correct an error of omission in the reimplementation of the page 2007-09-27 04:21:59 +00:00
vm_pageout.c Make contigmalloc(9)'s page laundering more robust. Specifically, use 2007-11-25 20:37:29 +00:00
vm_pageout.h Make contigmalloc(9)'s page laundering more robust. Specifically, use 2007-11-25 20:37:29 +00:00
vm_pageq.c Change the management of cached pages (PQ_CACHE) in two fundamental 2007-09-25 06:25:06 +00:00
vm_pager.c Consider a scenario in which one processor, call it Pt, is performing 2007-08-05 21:04:32 +00:00
vm_pager.h
vm_param.h Fix CTL_VM_NAMES. 2007-10-16 11:32:57 +00:00
vm_phys.c Update the comment describing vm_phys_unfree_page(). 2007-12-21 02:44:31 +00:00
vm_phys.h Modify vm_phys_unfree_page() so that it no longer requires the given 2007-12-20 22:45:54 +00:00
vm_reserv.c Add the superpage reservation system. This is "part 2 of 2" of the 2007-12-29 19:53:04 +00:00
vm_reserv.h Add the superpage reservation system. This is "part 2 of 2" of the 2007-12-29 19:53:04 +00:00
vm_unix.c
vm_zeroidle.c Rename the kthread_xxx (e.g. kthread_create()) calls 2007-10-20 23:23:23 +00:00
vnode_pager.c VOP_LOCK1() (and so VOP_LOCK()) and VOP_UNLOCK() are only used in 2008-01-13 14:44:15 +00:00
vnode_pager.h