summaryrefslogtreecommitdiff
path: root/sys/uvm/uvm_map.c
AgeCommit message (Collapse)Author
2002-10-29Since memory deallocation can't fail, remove the error return fromArtur Grabowski
uvm_unmap, uvm_deallocate and a few other functions. Simplifies some code and reduces diff to the UBC branch.
2002-10-29"len = entry->end - entry->start;" then logically "entry->start + len"Artur Grabowski
should be equal to "entry->end". (len is never changed)
2002-10-17 - name in uvm_tree_sanity must be const.Artur Grabowski
- fix a typo in comment. - enable uvm_tree_sanity ifdef DEBUG
2002-09-17int is small for returned values from uvm_rb_{space,subtree_space}, useMike Pechkin
vsize_t instead. art@ ok
2002-08-30__FUNCTION__ -> __func__ that I forgot to commit.Marc Espie
2002-08-20print as unsigned for unsigned values, when printing out a map in ddb; art@ okMichael Shalayeff
2002-07-23Now that sparc64 implements reverse splassert, it make senseArtur Grabowski
to add splassert(IPL_NONE) in a few strategic places.
2002-06-14spelling; from Brian Poole <raj@cerias.purdue.edu>Todd T. Fries
2002-06-05DIAGNOSTIC check for duplicate entry into the tree.Artur Grabowski
niels@ ok.
2002-04-29wierd -> weirdPeter Valchev
2002-03-14Final __P removal plus some cosmetic fixupsTodd C. Miller
2002-03-14First round of __P removal in sysTodd C. Miller
2002-03-08semicolon is not always what it seems, replace w/ a \n in asm labelsMichael Shalayeff
2002-03-07use an augmented red-black tree to keep track of free space in the vm_map.Niels Provos
uvm_tree_sanity is left as debugging help but needs to be enabled manually. okay art@
2002-02-28use red-black tree for lookup_entry. the red-black tree case forNiels Provos
map_findspace is still broken on alpha. this will make debugging easier. okay millert@
2002-02-25back out red-black tree. they are very fast but alpha UVM is broken andNiels Provos
the tree triggers the bug, PMAP_PREFER case was broken also.
2002-02-25use a red-black tree to find entries in the vm_map. augment the red-blackNiels Provos
tree to find free space between entries. speeds up memory allocation, etc...
2002-02-18From the UBC branch and NetBSD.Artur Grabowski
We allocate map entries for the non-intrsafe kernel map (most notably kernel_map and exec_map) from a pool that's backed by kmem_map (to avoid deadlocking). This should get rid of MAX_KMAPENT panics.
2002-01-23Pool deals fairly well with physical memory shortage, but it doesn't dealArtur Grabowski
well (not at all) with shortages of the vm_map where the pages are mapped (usually kmem_map). Try to deal with it: - group all information the backend allocator for a pool in a separate struct. The pool will only have a pointer to that struct. - change the pool_init API to reflect that. - link all pools allocating from the same allocator on a linked list. - Since an allocator is responsible to wait for physical memory it will only fail (waitok) when it runs out of its backing vm_map, carefully drain pools using the same allocator so that va space is freed. (see comments in code for caveats and details). - change pool_reclaim to return if it actually succeeded to free some memory, use that information to make draining easier and more efficient. - get rid of PR_URGENT, noone uses it.
2002-01-02Back out a few more uvm changes, especially wrt swap usage.Miod Vallat
This unbreaks m68k m88k sparc and perhaps others, which eventually froze when hitting swap. Tested by various people on various platforms. ok art@
2001-12-19UBC was a disaster. It worked very good when it worked, but on someArtur Grabowski
machines or some configurations or in some phase of the moon (we actually don't know when or why) files disappeared. Since we've not been able to track down the problem in two weeks intense debugging and we need -current to be stable, back out everything to a state it had before UBC. We apologise for the inconvenience.
2001-12-04Yet another sync to NetBSD uvm.Artur Grabowski
Today we add a pmap argument to pmap_update() and allocate map entries for kernel_map from kmem_map instead of using the static entries. This should get rid of MAX_KMAPENT panics. Also some uvm_loan problems are fixed.
2001-11-28Sync in more uvm from NetBSD. Mostly just cosmetic stuff.Artur Grabowski
Contains also support for page coloring.
2001-11-28Sync in more uvm changes from NetBSD.Artur Grabowski
This time we're getting rid of KERN_* and VM_PAGER_* error codes and use errnos instead.
2001-11-12Bring in more changes from NetBSD. Mostly pagedaemon improvements.Artur Grabowski
2001-11-09minor sync to NetBSD.Artur Grabowski
2001-11-07Another sync of uvm to NetBSD. Just minor fiddling, no major changes.Artur Grabowski
2001-11-07Add an alignment argument to uvm_map that specifies an alignment hintArtur Grabowski
for the virtual address.
2001-11-06More sync to NetBSD.Artur Grabowski
- Use malloc/free instead of MALLOC/FREE for variable sized allocations. - Move the memory inheritance code to sys/mman.h and rename from VM_* to MAP_* - various cleanups and simplifications.
2001-11-06Move the last content from vm/ to uvm/Artur Grabowski
The only thing left in vm/ are just dumb wrappers. vm/vm.h includes uvm/uvm_extern.h vm/pmap.h includes uvm/uvm_pmap.h vm/vm_page.h includes uvm/uvm_page.h
2001-11-05Minor sync to NetBSD.Artur Grabowski
2001-09-19merge vm/vm_kern.h into uvm/uvm_extern.h; art@ okMichael Shalayeff
2001-08-11Various random fixes from NetBSD.Artur Grabowski
Including support for zeroing pages in the idle loop (not enabled yet).
2001-08-06Add a new type voff_t (right now it's typedefed as off_t) used for offsetsArtur Grabowski
into objects. Gives the possibilty to mmap beyond the size of vaddr_t. From NetBSD.
2001-07-18Correct the NetBSD tag.Artur Grabowski
2001-07-18Get rid of the PMAP_NEW option by making it mandatory for all archs.Artur Grabowski
The archs that didn't have a proper PMAP_NEW now have a dummy implementation with wrappers around the old functions.
2001-07-17i suk. needs &'s on the locks...mts
2001-07-17current netbsd's uvm_map uses a 3-parm SAVE_HINT to perform a test/swapmts
under locked conditions. we currently use a 2-parm SAVE_HINT... to meet the same functionality, we instead need to validate the hint is the one CURRENTLY in the map before substituing it, and we need to do that while the lock is retained.
2001-07-11need to save hint (verified from current netbsd uvm_map.c) -- need modmts
to allow bpf to manage shared address space.
2001-06-23Sync with NetBSD 19990911 (just before PMAP_NEW was required)smart
- thread_sleep_msg() -> uvm_sleep() - initialize reference count lock in uvm_anon_{init,add}() - add uao_flush() - replace boolean 'islocked' with 'lockflags' - in uvm_fault() change FALSE to TRUE to in 'wide' fault handling - get rid of uvm_km_get() - various bug fixes
2001-05-10More sync to NetBSD.Artur Grabowski
The highlight is some more advices to madvise(2). o MADV_DONTNEED will deactive the pages in the given range giving a quicker reuse. o MADV_FREE will garbage-collect the pages and swap resources causing the next fault to either page in new pages from backing store (mapped vnode) or allocate new zero-fill pages (anonymous mapping).
2001-05-10Some locking protocol fixes and better enforcement of wiring limits.Artur Grabowski
From NetBSD.
2001-05-07Few fixes from NetBSD.Artur Grabowski
- make sure that vsunlock doesn't unwire mlocked memory. - fix locking in uvm_useracc. - Return the error uvm_fault_wire in uvm_vslock (will be used soon).
2001-05-05PMAP_NEW and UVM are no longer optional on i386.Artur Grabowski
2001-03-22Sync style, typo, and comments a little closer to NetBSD. art@ oksmart
2001-03-15Let uvm_map_extract set the lower bound on the address range itselfArtur Grabowski
instead of depending on the callers to do that. (which they don't)
2001-03-09More syncing to NetBSD.Artur Grabowski
Implements mincore(2), mlockall(2) and munlockall(2). mlockall and munlockall are disabled for the moment. The rest is mostly cosmetic.
2001-01-29$OpenBSD$Niklas Hallqvist
2000-11-10seperate -> separate, okay aaron@Niels Provos
2000-09-07Convert bzero to memset(X, 0..) and bcopy to memcpy.Artur Grabowski
This is to match (make diffs smaller) the code in NetBSD. new gcc inlines those functions, so this could also be a performance win.