freebsd-dev/sys/vm
Alan Cox 4e94f40222 o Replace the vm_map's hint by the root of a splay tree. By design,
the last accessed datum is moved to the root of the splay tree.
   Therefore, on lookups in which the hint resulted in O(1) access,
   the splay tree still achieves O(1) access.  In contrast, on lookups
   in which the hint failed miserably, the splay tree achieves amortized
   logarithmic complexity, resulting in dramatic improvements on vm_maps
   with a large number of entries.  For example, the execution time
   for replaying an access log from www.cs.rice.edu against the thttpd
   web server was reduced by 23.5% due to the large number of files
   simultaneously mmap()ed by this server.  (The machine in question has
   enough memory to cache most of this workload.)

   Nothing comes for free: At present, I see a 0.2% slowdown on "buildworld"
   due to the overhead of maintaining the splay tree.  I believe that
   some or all of this can be eliminated through optimizations
   to the code.

Developed in collaboration with: Juan E Navarro <jnavarro@cs.rice.edu>
Reviewed by:	jeff
2002-05-24 01:33:24 +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 Tidy up some loose ends. 2002-04-29 07:43:16 +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 In uma_zalloc_arg(), if we are performing a M_WAITOK allocation, ensure 2002-05-20 17:54:48 +00:00
uma_dbg.c Hide a pointer to the malloc_type bucket at the end of the freed memory. If 2002-05-02 09:07:04 +00:00
uma_dbg.h Hide a pointer to the malloc_type bucket at the end of the freed memory. If 2002-05-02 09:07:04 +00:00
uma_int.h Add a new zone flag UMA_ZONE_MTXCLASS. This puts the zone in it's own 2002-04-29 23:45:41 +00:00
uma.h - Changed the size element of uma_zctor_args to be size_t instead of int. 2002-05-02 07:36:30 +00:00
vm_contig.c o Make contigmalloc1() static. 2002-05-22 01:01:37 +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 o Condition the compilation and use of vm_freeze_copyopts() 2002-05-06 05:45:57 +00:00
vm_glue.c o Introduce and use vm_map_trylock() to replace several direct uses 2002-04-28 06:07:54 +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 Tidy up some loose ends. 2002-04-29 07:43:16 +00:00
vm_kern.h o Make contigmalloc1() static. 2002-05-22 01:01:37 +00:00
vm_map.c o Replace the vm_map's hint by the root of a splay tree. By design, 2002-05-24 01:33:24 +00:00
vm_map.h o Replace the vm_map's hint by the root of a splay tree. By design, 2002-05-24 01:33:24 +00:00
vm_meter.c Reintroduce locking on accesses to vm_object_list. 2002-04-20 07:23:22 +00:00
vm_mmap.c o Eliminate the acquisition and release of Giant from minherit(2). 2002-05-18 18:59:00 +00:00
vm_object.c o Remove GIANT_REQUIRED from vm_map_madvise(). Instead, acquire and 2002-05-18 07:48:06 +00:00
vm_object.h o Move vm_freeze_copyopts() from vm_map.{c.h} to vm_object.{c,h}. It's plainly 2002-05-06 00:12:47 +00:00
vm_page.c o Convert the vm_page buckets mutex to a spin lock. (This resolves 2002-04-30 21:24:47 +00:00
vm_page.h We do not necessarily need to map/unmap pages to zero parts of them. 2002-04-28 00:15:48 +00:00
vm_pageout.c o Introduce and use vm_map_trylock() to replace several direct uses 2002-04-28 06:07:54 +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 Make MAXTSIZ, DFLDSIZ, MAXDSIZ, DFLSSIZ, MAXSSIZ, SGROWSIZ loader 2001-10-10 23:06:54 +00:00
vm_swap.c Expand the one-line function pbreassignbuf() the only place it is or could 2002-05-05 20:37:08 +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 Pass vm_page_t instead of physical addresses to pmap_zero_page[_area]() 2002-04-15 16:00:03 +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 More s/file system/filesystem/g 2002-05-16 21:28:32 +00:00
vnode_pager.h Remove __P. 2002-03-19 22:20:14 +00:00