freebsd-dev/sys/vm
Matthew Dillon fa7dd9c5bc Change the way ELF coredumps are handled. Instead of unconditionally
skipping read-only pages, which can result in valuable non-text-related
data not getting dumped, the ELF loader and the dynamic loader now mark
read-only text pages NOCORE and the coredump code only checks (primarily) for
complete inaccessibility of the page or NOCORE being set.

Certain applications which map large amounts of read-only data will
produce much larger cores.  A new sysctl has been added,
debug.elf_legacy_coredump, which will revert to the old behavior.

This commit represents collaborative work by all parties involved.
The PR contains a program demonstrating the problem.

PR:		kern/45994
Submitted by:	"Peter Edwards" <pmedwards@eircom.net>, Archie Cobbs <archie@dellroad.org>
Reviewed by:	jdp, dillon
MFC after:	7 days
2002-12-16 19:24:43 +00:00
..
default_pager.c Remove references to vm_zone.h and switch over to the new uma API. 2002-03-20 04:02:59 +00:00
device_pager.c o Lock accesses to the page queues. 2002-07-12 02:55:55 +00:00
phys_pager.c o Retire vm_page_zero_fill() and vm_page_zero_fill_area(). Ever since 2002-08-25 00:22:31 +00:00
pmap.h Move pmap_collect() out of the machine-dependent code, rename it 2002-11-13 05:39:58 +00:00
swap_pager.c This is David Schultz's swapoff code which I am finally able to commit. 2002-12-15 19:17:57 +00:00
swap_pager.h This is David Schultz's swapoff code which I am finally able to commit. 2002-12-15 19:17:57 +00:00
uma_core.c - Wakeup the correct address when a zone is no longer full. 2002-11-18 08:27:14 +00:00
uma_dbg.c atomic_set_8 isn't MI. Instead, follow Jake's suggestions about 2002-11-11 11:50:03 +00:00
uma_dbg.h - Use my freebsd email alias in the copyright. 2002-09-19 06:05:32 +00:00
uma_int.h - Add support for machine dependant page allocation routines. MD code 2002-11-01 01:01:27 +00:00
uma.h Fix typo in comments (misspelled "necessary"). 2002-10-22 12:10:27 +00:00
vm_contig.c o Extend the scope of the page queues lock in contigmalloc1(). 2002-08-04 07:07:34 +00:00
vm_extern.h o Merge vm_fault_wire() and vm_fault_user_wire() by adding a new parameter, 2002-07-24 19:47:56 +00:00
vm_fault.c Now that pmap_remove_all() is exported by our pmap implementations 2002-11-16 07:44:25 +00:00
vm_glue.c This is David Schultz's swapoff code which I am finally able to commit. 2002-12-15 19:17:57 +00:00
vm_init.c Move the definitions of the hw.physmem, hw.usermem and hw.availpages 2002-11-07 23:57:17 +00:00
vm_kern.c Perform vm_object_lock() and vm_object_unlock() on kmem_object 2002-12-15 21:09:09 +00:00
vm_kern.h o Make contigmalloc1() static. 2002-05-22 01:01:37 +00:00
vm_map.c Fix a refcount race with the vmspace structure. In order to prevent 2002-12-15 18:50:04 +00:00
vm_map.h Fix a refcount race with the vmspace structure. In order to prevent 2002-12-15 18:50:04 +00:00
vm_meter.c Rename the mutex thread and process states to use a more generic 'LOCK' 2002-10-02 20:31:47 +00:00
vm_mmap.c Lock page field accesses in mincore(). 2002-11-28 08:01:39 +00:00
vm_object.c As per the comments, vm_object_page_remove() now expects its caller to lock 2002-12-15 07:30:51 +00:00
vm_object.h Remove dead code that hasn't been needed since the demise of share maps 2002-11-13 19:50:06 +00:00
vm_page.c Assert that the page queues lock is held in vm_page_unhold(), 2002-12-15 00:06:02 +00:00
vm_page.h Remove vm_page_protect(). Instead, use pmap_page_protect() directly. 2002-11-18 04:05:22 +00:00
vm_pageout.c Hold the page queues lock when calling pmap_protect(); it updates fields 2002-12-01 05:40:18 +00:00
vm_pageout.h This is David Schultz's swapoff code which I am finally able to commit. 2002-12-15 19:17:57 +00:00
vm_pageq.c o Remove dead and/or unused code. 2002-07-20 05:06:20 +00:00
vm_pager.c o Remove some long dead code: from revision 1.41 of vm/vm_pager.c 2002-07-01 02:38:05 +00:00
vm_pager.h o Remove some long dead code: from revision 1.41 of vm/vm_pager.c 2002-07-01 02:38:05 +00:00
vm_param.h Make MAXTSIZ, DFLDSIZ, MAXDSIZ, DFLSSIZ, MAXSSIZ, SGROWSIZ loader 2001-10-10 23:06:54 +00:00
vm_swap.c This is David Schultz's swapoff code which I am finally able to commit. 2002-12-15 19:17:57 +00:00
vm_unix.c Use the fields in the sysentvec and in the vm map header in place of the 2002-09-21 22:07:17 +00:00
vm_zeroidle.c - Create a new scheduler api that is defined in sys/sched.h 2002-10-12 05:32:24 +00:00
vm.h Change the way ELF coredumps are handled. Instead of unconditionally 2002-12-16 19:24:43 +00:00
vnode_pager.c Perform vm_object_lock() and vm_object_unlock() around 2002-12-15 05:41:56 +00:00
vnode_pager.h Remove __P. 2002-03-19 22:20:14 +00:00