summaryrefslogtreecommitdiffstats
path: root/sys/uvm/uvm_fault.c (follow)
Commit message (Collapse)AuthorAgeFilesLines
...
* uvm: keep track of maxrssariane2012-04-121-1/+46
| | | | | | | The fault path is used to update the maxrss of the faulting proc. Doesn't affect anything, as it was 0 before. Requested by espie, "just commit it" deraadt
* Make rusage totals, itimers, and profile settings per-process insteadguenther2012-03-231-5/+5
| | | | | | | of per-rthread. Handling of per-thread tick and runtime counters inspired by how FreeBSD does it. ok kettenis@
* New vmmap implementation.ariane2012-03-091-6/+9
| | | | | | | | | | | | no oks (it is really a pain to review properly) extensively tested, I'm confident it'll be stable 'now is the time' from several icb inhabitants Diff provides: - ability to specify different allocators for different regions/maps - a simpler implementation of the current allocator - currently in compatibility mode: it will generate similar addresses as the old allocator
* Rip out and burn support for UVM_HIST.oga2011-07-031-82/+2
| | | | | | | | The vm hackers don't use it, don't maintain it and have to look at it all the time. About time this 800 lines of code hit /dev/null. ``never liked it'' tedu@. ariane@ was very happy when i told her i wrote this diff.
* Replace handrolled version of uvmfault_unlockmaps with uvmfault_unlockmaps.oga2011-06-231-6/+2
| | | | ok ariane@
* Backout vmmap in order to repair virtual address selection algorithmsariane2011-06-061-6/+7
| | | | outside the tree.
* Reimplement uvm/uvm_map.ariane2011-05-241-7/+6
| | | | | | | | | | | | | vmmap is designed to perform address space randomized allocations, without letting fragmentation of the address space go through the roof. Some highlights: - kernel address space randomization - proper implementation of guardpages - roughly 10% system time reduction during kernel build Tested by alot of people on tech@ and developers. Theo's machines are still happy.
* Put the PG_RELEASED changes diff back in.oga2009-07-221-43/+14
| | | | | | | | This has has been tested very very thoroughly on all archs we have excepting 88k and 68k. Please see cvs log for the individual commit messages. ok beck@, thib@
* date based reversion of uvm to the 4th May.oga2009-06-161-3/+3
| | | | | | | | | | We still have no idea why this stops the crashes. but it does. a machine forced to 64mb of ram cycled 10GB through swap with this diff and is still running as I type this. Other tests by ariane@ and thib@ also seem to show that it's alright. ok deraadt@, thib@, ariane@
* Backout all changes to uvm after pmemrange (which will be backed outoga2009-06-161-14/+48
| | | | | | | | | | | | | | | | | | | | | | | | | | separately). a change at or just before the hackathon has either exposed or added a very very nasty memory corruption bug that is giving us hell right now. So in the interest of kernel stability these diffs are being backed out until such a time as that corruption bug has been found and squashed, then the ones that are proven good may slowly return. a quick hitlist of the main commits this backs out: mine: uvm_objwire the lock change in uvm_swap.c using trees for uvm objects instead of the hash removing the pgo_releasepg callback. art@'s: putting pmap_page_protect(VM_PROT_NONE) in uvm_pagedeactivate() since all callers called that just prior anyway. ok beck@, ariane@. prompted by deraadt@.
* Since all callers of uvm_pagedeactivate did pmap_page_protect(.., VM_PROT_NONE)art2009-06-061-6/+1
| | | | | | just move that into uvm_pagedeactivate. oga@ ok
* Since we've now cleared up a lot of the PG_RELEASED setting, remove theoga2009-06-011-43/+14
| | | | | | | | pgo_releasepg() hook and just free the page the "normal" way in the one place we'll ever see PG_RELEASED and should care (uvm_page_unbusy, called in aiodoned). ok art@, beck@, thib@
* Remove static qualifier of functions that are not inline.ariane2009-05-081-3/+3
| | | | | | Makes trace in ddb useful. ok oga
* Move all of the pseudo-inline functions in uvm into C files.oga2009-03-251-1/+161
| | | | | | | | | By pseudo-inline, I mean that if a certain macro was defined, they would be inlined. However, no architecture defines that, and none has for a very very long time. Therefore mainly this just makes the code a damned sight easier to read. Some k&r -> ansi declarations while I'm in there. "just commit it" art@. ok weingart@.
* While working on some stuff in uvm I've gotten REALLY sick of readingoga2009-03-201-25/+10
| | | | | | | K&R function declarations, so switch them all over to ansi-style, in accordance with the prophesy. "go for it" art@
* remove dead stores and newly created unused variables.chl2008-09-161-2/+2
| | | | | | Found by LLVM/Clang Static Analyzer. ok miod@ art@
* Bring back Mickey's UVM anon change. Testing by thib@, beck@ andpedro2007-06-181-20/+20
| | | | ckuethe@ for a while. Okay beck@, "it is good timing" deraadt@.
* zap the vm_amap am_l simplelock, and amap_{lock/unlock} macros forthib2007-05-311-7/+1
| | | | | | simple_{lock/unlock}. ok art@
* minor indentation.art2007-04-151-2/+2
|
* While splitting flags and pqflags might have been a good idea in theoryart2007-04-131-21/+31
| | | | | | | | | | | | to separate locking, on most modern machines this is not enough since operations on short types touch other short types that share the same word in memory. Merge pg_flags and pqflags again and now use atomic operations to change the flags. Also bump wire_count to an int and pg_version might go int as well, just for alignment. tested by many, many. ok miod@
* Instead of managing pages for intrsafe maps in special objects (aka.art2007-04-111-25/+7
| | | | | | | | kmem_object) just so that we can remove them, just use pmap_extract to get the pages to free and simplify a lot of code to not deal with the list of intrsafe maps, intrsafe objects, etc. miod@ ok
* Mechanically rename the "flags" and "version" fields in struct vm_pageart2007-04-041-31/+31
| | | | | | | | | | to "pg_flags" and "pg_version", so that they are a bit easier to work with. Whoever uses generic names like this for a popular struct obviously doesn't read much code. Most architectures compile and there are no functionality changes. deraadt@ ok ("if something fails to compile, we fix that by hand")
* Rip out the KERN_ error codes.art2007-03-261-14/+14
| | | | ok otto@
* remove KERN_SUCCESS and use 0 instead.art2007-03-251-7/+7
| | | | eyeballed by miod@ and pedro@
* fix uvmhist #2: args are always u_long so fix missing %d and %x and no %ll; no change for normal codemickey2006-07-311-8/+8
|
* fix fmts for UVMHIST_LOG() entries making it more useful on 64bit archs; miod@ okmickey2006-07-261-13/+13
|
* Back out the anon change. Apparently it was tested by a few, but most ofderaadt2006-07-131-20/+20
| | | | | us did not see it or get a chance to test it before it was commited. It broke cvs, in the ami driver, making it not succeed at seeing it's devices.
* from netbsd: make anons dynamically allocated from pool.mickey2006-06-211-20/+20
| | | | | | this results in lesse kva waste due to static preallocation of those for every phys page and also every swap page. tested by beck krw miod
* do not panic unwiring unmapped memory (mmap3 regress); from netbsd; kettenis@ tedu@ okmickey2006-03-061-7/+4
|
* apply patch from david hill for two netbsd prs:tedu2005-11-291-2/+3
| | | | | | 14060 skip MADV_SEQUENTIAL if refaulting 18037 missing pageactivate tested for some time by jolan krw
* typopedro2005-10-231-2/+2
|
* repair file mmapings above 4g; found by chefren; art@ okmickey2005-05-031-7/+7
|
* the rest of the '#if DIAGNOSTIC' -> '#ifdef DIAGNOSTIC' in the kernel; ok miod@todd2004-08-031-2/+2
|
* sync of pmap_update() calls with NetBSD. pmap_update is defined away ondrahn2004-02-231-1/+5
| | | | all architectures but arm, where it is needed.
* First round of __P removal in sysmillert2002-03-141-3/+3
|
* Back out a few more uvm changes, especially wrt swap usage.miod2002-01-021-41/+21
| | | | | | | This unbreaks m68k m88k sparc and perhaps others, which eventually froze when hitting swap. Tested by various people on various platforms. ok art@
* UBC was a disaster. It worked very good when it worked, but on someart2001-12-191-141/+156
| | | | | | | | | 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.
* Yet another sync to NetBSD uvm.art2001-12-041-6/+6
| | | | | | 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.
* Sync in more uvm from NetBSD. Mostly just cosmetic stuff.art2001-11-281-86/+96
| | | | Contains also support for page coloring.
* Sync in more uvm changes from NetBSD.art2001-11-281-71/+50
| | | | | This time we're getting rid of KERN_* and VM_PAGER_* error codes and use errnos instead.
* Merge in the unified buffer cache code as found in NetBSD 2001/03/10. Theart2001-11-271-5/+1
| | | | | | | code is written mostly by Chuck Silvers <chuq@chuq.com>/<chs@netbsd.org>. Tested for the past few weeks by many developers, should be in a pretty stable state, but will require optimizations and additional cleanups.
* Bring in more changes from NetBSD. Mostly pagedaemon improvements.art2001-11-121-39/+58
|
* various style fixes.art2001-11-091-102/+52
|
* More sync to NetBSD.art2001-11-061-14/+22
| | | | | | - 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.
* Move the last content from vm/ to uvm/art2001-11-061-5/+2
| | | | | | | 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
* Minor sync to NetBSD.art2001-11-051-2/+2
|
* merge vm/vm_kern.h into uvm/uvm_extern.h; art@ okmickey2001-09-191-2/+1
|
* Various random fixes from NetBSD.art2001-08-111-5/+16
| | | | Including support for zeroing pages in the idle loop (not enabled yet).
* Add support for disabling swap devices (swapctl -d).art2001-07-261-15/+34
| | | | | Improve error handling on I/O errors to swap. From NetBSD
* Change the pmap_enter interface to merge access_type and the wired booleanart2001-07-251-21/+96
| | | | | | | | | | | | | and arbitrary flags into one argument. One new flag is PMAP_CANFAIL that tells pmap_enter that it can fail if there are not enough resources to satisfy the request. If this flag is not passed, pmap_enter should panic as it should have done before this change (XXX - many pmaps are still not doing that). Only i386 and alpha implement CANFAIL for now. Includes uvm updates from NetBSD.