NetBSD/sys/uvm
thorpej 1a07681a27 - In uvm_voaddr_acquire(), take an extra hold on the anon lock obj.
- In uvm_voaddr_release(), if the anon ref count drops to 0, call
  uvm_anfree() rather than uvm_anon_release().  Unconditionally drop
  the anon lock, and release the extra hold on the anon lock obj.

Fixes a panic that occurs if the backing store for a futex backed by
an anon memory location is unmapped while a thread is waiting in the
futex.

Add a test case that reproduced the panic to verify that it's fixed.
2020-04-30 04:18:07 +00:00
..
pmap Fix UVMHIST bulid 2020-04-14 05:43:57 +00:00
files.uvm
Makefile
uvm_amap.c Go back to freeing struct vm_anon one by one. There may have been an 2020-03-20 19:08:54 +00:00
uvm_amap.h Go back to freeing struct vm_anon one by one. There may have been an 2020-03-20 19:08:54 +00:00
uvm_anon.c Process concurrent page faults on individual uvm_objects / vm_amaps in 2020-03-22 18:32:41 +00:00
uvm_anon.h Go back to freeing struct vm_anon one by one. There may have been an 2020-03-20 19:08:54 +00:00
uvm_aobj.c Process concurrent page faults on individual uvm_objects / vm_amaps in 2020-03-22 18:32:41 +00:00
uvm_aobj.h
uvm_bio.c Disable ubc_direct by default again. There are still stability issues 2020-04-26 16:16:13 +00:00
uvm_coredump.c
uvm_ddb.h
uvm_device.c 0x%#x --> %#x for non-external codes. 2020-02-24 12:38:57 +00:00
uvm_device.h
uvm_extern.h Add missing \ to fix build for PMAP_CACHE_VIVT, i.e., ARMv4 and prior. 2020-04-27 02:47:26 +00:00
uvm_fault_i.h
uvm_fault.c uvm_fault_check(): if MADV_SEQUENTIAL, change lower lock type to RW_WRITER 2020-04-13 22:22:19 +00:00
uvm_fault.h
uvm_glue.c Enable ubc_direct by default, but only on systems with no more than 2 CPUs 2020-04-23 21:53:01 +00:00
uvm_glue.h
uvm_init.c Fix a comment. 2020-03-06 20:46:12 +00:00
uvm_io.c
uvm_km.c Make page waits (WANTED vs BUSY) interlocked by pg->interlock. Gets RW 2020-03-14 20:23:51 +00:00
uvm_km.h
uvm_loan.c Process concurrent page faults on individual uvm_objects / vm_amaps in 2020-03-22 18:32:41 +00:00
uvm_loan.h
uvm_map.c - In uvm_voaddr_acquire(), take an extra hold on the anon lock obj. 2020-04-30 04:18:07 +00:00
uvm_map.h - uvmspace_exec(), uvmspace_free(): if pmap_remove_all() returns true the 2020-03-14 14:15:43 +00:00
uvm_meter.c Process concurrent page faults on individual uvm_objects / vm_amaps in 2020-03-22 18:32:41 +00:00
uvm_mmap.c
uvm_mremap.c
uvm_object.c
uvm_object.h Make uvm_pagemarkdirty() responsible for putting vnodes onto the syncer 2020-03-14 20:45:23 +00:00
uvm_page_array.c Fix a comment. 2020-03-17 00:30:17 +00:00
uvm_page_array.h
uvm_page_status.c Make uvm_pagemarkdirty() responsible for putting vnodes onto the syncer 2020-03-14 20:45:23 +00:00
uvm_page.c Tweak the March 14th change to make page waits interlocked by pg->interlock. 2020-03-17 18:31:38 +00:00
uvm_page.h Tweak the March 14th change to make page waits interlocked by pg->interlock. 2020-03-17 18:31:38 +00:00
uvm_pager.c uvm_aio_aiodone_pages(): only call uvm_pageout_done() if work was done for 2020-04-19 21:53:38 +00:00
uvm_pager.h Process concurrent page faults on individual uvm_objects / vm_amaps in 2020-03-22 18:32:41 +00:00
uvm_param.h
uvm_pdaemon.c hardclock_ticks -> getticks() 2020-04-13 15:54:45 +00:00
uvm_pdaemon.h
uvm_pdpolicy_clock.c Hide 'hardclock_ticks' behind a new getticks() function, and use relaxed 2020-04-02 16:29:30 +00:00
uvm_pdpolicy_clockpro.c Update a link to "CLOCK-Pro" paper. 2020-04-10 18:17:56 +00:00
uvm_pdpolicy_impl.h
uvm_pdpolicy.h
uvm_pgflcache.c
uvm_pgflcache.h
uvm_pglist.c uvm_pglistalloc() / uvm_pglistfree() musn't be called from interrupt 2020-03-01 21:43:56 +00:00
uvm_pglist.h Comments 2020-04-13 15:16:14 +00:00
uvm_physseg.c uvm_physseg: cluster fields used during RB tree lookup for PHYS_TO_VM_PAGE(). 2020-03-15 21:06:30 +00:00
uvm_physseg.h
uvm_pmap.h pmap_remove_all(): Return a boolean value to indicate the behaviour. If 2020-03-14 14:05:42 +00:00
uvm_prot.h
uvm_readahead.c Only need a read lock for uvm_pagelookup(). 2020-03-08 18:40:29 +00:00
uvm_readahead.h
uvm_stat.c
uvm_stat.h Oops, forgot the empty macro version of UVMHIST_CALLARGS 2020-04-13 07:11:08 +00:00
uvm_swap.c
uvm_swap.h
uvm_swapstub.c
uvm_unix.c
uvm_user.c
uvm_vnode.c Process concurrent page faults on individual uvm_objects / vm_amaps in 2020-03-22 18:32:41 +00:00
uvm.h Make page waits (WANTED vs BUSY) interlocked by pg->interlock. Gets RW 2020-03-14 20:23:51 +00:00