freebsd-skq/sys/vm
Jeff Roberson a553d4b8eb Rework most of the bucket allocation and free code so that per cpu locks are
never held across blocking operations.  Also, fix two other lock order
reversals that were exposed by jhb's witness change.

The free path previously had a bug that would cause it to skip the free bucket
list in some cases and go straight to allocating a new bucket.  This has been
fixed as well.

These changes made the bucket handling code much cleaner and removed quite a
few lock operations.  This should be marginally faster now.

It is now possible to call malloc w/o Giant and avoid any witness warnings.
This still isn't entirely safe though because malloc_type statistics are not
protected by any lock.
2002-04-08 02:42:55 +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 Change callers of mtx_init() to pass in an appropriate lock type name. In 2002-04-04 21:03:38 +00:00
phys_pager.c Change callers of mtx_init() to pass in an appropriate lock type name. In 2002-04-04 21:03:38 +00:00
pmap.h Remove __P. 2002-03-19 22:20:14 +00:00
swap_pager.c Change callers of mtx_init() to pass in an appropriate lock type name. In 2002-04-04 21:03:38 +00:00
swap_pager.h Remove references to vm_zone.h and switch over to the new uma API. 2002-03-20 04:02:59 +00:00
uma_core.c Rework most of the bucket allocation and free code so that per cpu locks are 2002-04-08 02:42:55 +00:00
uma_int.h Rework most of the bucket allocation and free code so that per cpu locks are 2002-04-08 02:42:55 +00:00
uma.h Spelling correction; s/seperate/separate/g 2002-04-07 22:56:48 +00:00
vm_contig.c Call vm_pageq_remove_nowakeup() rather than duplicating it. 2002-03-03 22:36:14 +00:00
vm_extern.h o Eliminate the use of grow_stack() and useracc() from sendsig(), osendsig(), 2002-04-05 00:52:15 +00:00
vm_fault.c Remove __P. 2002-03-19 22:20:14 +00:00
vm_glue.c Remove __P. 2002-03-19 22:20:14 +00:00
vm_init.c Remove references to vm_zone.h and switch over to the new uma API. 2002-03-20 04:02:59 +00:00
vm_kern.c - Remove a number of extra newlines that do not belong here according to 2002-03-10 21:52:48 +00:00
vm_kern.h
vm_map.c Remove references to vm_zone.h and switch over to the new uma API. 2002-03-20 04:02:59 +00:00
vm_map.h This is the first part of the new kernel memory allocator. This replaces 2002-03-19 09:11:49 +00:00
vm_meter.c Embed a struct vmmeter in the per-cpu structure and add a macro, 2002-04-04 21:38:47 +00:00
vm_mmap.c Change the suser() API to take advantage of td_ucred as well as do a 2002-04-01 21:31:13 +00:00
vm_object.c Change callers of mtx_init() to pass in an appropriate lock type name. In 2002-04-04 21:03:38 +00:00
vm_object.h
vm_page.c Change callers of mtx_init() to pass in an appropriate lock type name. In 2002-04-04 21:03:38 +00:00
vm_page.h - Remove a number of extra newlines that do not belong here according to 2002-03-10 21:52:48 +00:00
vm_pageout.c Remove references to vm_zone.h and switch over to the new uma API. 2002-03-20 04:02:59 +00:00
vm_pageout.h Remove __P. 2002-03-19 22:20:14 +00:00
vm_pageq.c Change callers of mtx_init() to pass in an appropriate lock type name. In 2002-04-04 21:03:38 +00:00
vm_pager.c Change callers of mtx_init() to pass in an appropriate lock type name. In 2002-04-04 21:03:38 +00:00
vm_pager.h Remove __P. 2002-03-19 22:20:14 +00:00
vm_param.h
vm_swap.c Change the suser() API to take advantage of td_ucred as well as do a 2002-04-01 21:31:13 +00:00
vm_unix.c Garbage-collect options ACPI_NO_ENABLE_ON_BOOT, AML_DEBUG, BLEED, 2002-02-15 13:16:11 +00:00
vm_zeroidle.c In a threaded world, differnt priorirites become properties of 2002-02-11 20:37:54 +00:00
vm.h - Remove a number of extra newlines that do not belong here according to 2002-03-10 21:52:48 +00:00
vnode_pager.c Remove __P. 2002-03-19 22:20:14 +00:00
vnode_pager.h Remove __P. 2002-03-19 22:20:14 +00:00