summaryrefslogtreecommitdiff
path: root/sys/uvm/uvm_page.c
AgeCommit message (Collapse)Author
2008-07-02Make the pagedaemon a bit happier.Artur Grabowski
1. When checking if the pagedaemon should be awakened and to see how much work it should do, consider the buffer cache deficit (how much pages the buffer cache can eat max vs. how much it has now) as pages that are not free. They are actually still usable by the allocator, but the presure on the pagedaemon is increased when we starting to chew into the memory that the buffer cache wants to use. 2. Remove the stupid 512kB limit of how much memory should be our free target. That maybe made sense on 68k, but on modern systems 512k is just a joke. Keep it at 3% of physical memory just like it was meant to be. 3. When doing allocations for the pagedaemon, always let it use the reserve. the whole UVM_OBJ_IS_KERN_OBJECT is silly and doesn't work in most cases anyway. We still don't have a reserve for the pagedaemon in the km_page allocator, but this seems to help enough. (yes, there are still bad cases in that code and the comment is only half-true, the whole section needs a massage, but that will happen later, this diff only touches pagedaemon parts) Testing by many, prodded by theo.
2008-04-12Prune the in-use swap encryption keys in uvm_shutdown(), per deraadt@'s idea.Miod Vallat
2008-04-09Add new stub uvm_shutdown() and call it from the right place in MD boot()Theo de Raadt
2008-01-04Only compile in uvm_page_physdump() if option DDB as it's not directly callableMiod Vallat
and supposed to be only used from within ddb.
2007-12-18Turn the uvm_{lock/unlock}_fpageq() inlines intoThordur I. Bjornsson
macros that just expand into the mutex functions to keep the abstraction, do assorted cleanup. ok miod@,art@
2007-11-29use a working mutex for the freepage list. ok art deraadtTed Unangst
2007-06-18Bring back Mickey's UVM anon change. Testing by thib@, beck@ andPedro Martelletto
ckuethe@ for a while. Okay beck@, "it is good timing" deraadt@.
2007-05-18Instead of checking whichqs directly, add a "sched_is_idle()" macro toArtur Grabowski
sys/sched.h and use that to check if there's something to do. kettenis@ thib@ ok
2007-04-13While splitting flags and pqflags might have been a good idea in theoryArtur Grabowski
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@
2007-04-11Instead of managing pages for intrsafe maps in special objects (aka.Artur Grabowski
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
2007-04-04Mechanically rename the "flags" and "version" fields in struct vm_pageArtur Grabowski
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")
2006-07-31fix uvmhist #2: args are always u_long so fix missing %d and %x and no %ll; ↵Michael Shalayeff
no change for normal code
2006-07-26fix fmts for UVMHIST_LOG() entries making it more useful on 64bit archs; ↵Michael Shalayeff
miod@ ok
2006-07-13Back out the anon change. Apparently it was tested by a few, but most ofTheo de Raadt
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.
2006-06-21from netbsd: make anons dynamically allocated from pool.Michael Shalayeff
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
2006-04-27from PAE work:Michael Shalayeff
as freepages being vconverted back to byte address make sure to perform calculations in (upcoming) larger paddr_t to avoid losing higher bits in calculation.
2006-01-16add another uvm histroy for physpage alloc/free and propagate a debugging ↵Michael Shalayeff
pgfree check into pglist; no functional change for normal kernels; make histories uncommon
2004-12-26Use list and queue macros where applicable to make the code easier to read;Miod Vallat
no change in compiler assembly output.
2004-02-23sync of pmap_update() calls with NetBSD. pmap_update is defined away onDale Rahn
all architectures but arm, where it is needed.
2003-06-01Typo in panic message.Miod Vallat
2003-03-29ubchist is not a fully cooked kadaver and though use the other well formed ↵Michael Shalayeff
pdhist one until ubc gaets back. art@ ok
2002-10-12Remove more '\n's from panic() statements. Both trailing and leading.Kenneth R Westerback
Diff generated by Chris Kuethe.
2002-09-12Change the PMAP_PAGEIDLEZERO api to take the struct vm_page instead of the pa.Artur Grabowski
2002-09-10Change the pmap_zero_page and pmap_copy_page API to take the struct vm_page *Artur Grabowski
instead of the pa. Most callers already had it handy and those who didn't only called it for managed pages and were outside time-critical code. This will allow us to make those functions clean and fast on sparc and sparc64 letting us to avoid unnecessary cache flushes. deraadt@ miod@ drahn@ ok.
2002-06-11Allow MD code to define __HAVE_VM_PAGE_MD to add own members into struct ↵Artur Grabowski
vm_page. From NetBSD.
2002-03-14First round of __P removal in sysTodd C. Miller
2002-01-28allocate vm pages with uvm_km_alloc (this code is ifdefed out anyway).Artur Grabowski
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-06Keep track of how many pages a vnode hold with vhold and vholdreleArtur Grabowski
so that we can get back the old behavior where a vnode with cached data is less likely to be recycled than a vnode without cached data. XXX - This is a brute-force solution - we do it where uvmexp.vnodepages are changed, I am not really sure it is correct but people have been very happy with the diff so far and want this in the tree.
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-30Kill uvm_pagealloc_contig. The two drivers that still used it should haveArtur Grabowski
been converted to bus_dma ages ago, but since noone haven't bothered to do that I haven't bothered to do more than to test that the kernel still builds with those changes.
2001-11-28Sync in more uvm from NetBSD. Mostly just cosmetic stuff.Artur Grabowski
Contains also support for page coloring.
2001-11-28more sync to netbsd. some bugfixes in uvm_km_kmemalloc, lots of fixes in ↵Artur Grabowski
uvm_loan.
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-27Merge in the unified buffer cache code as found in NetBSD 2001/03/10. TheArtur Grabowski
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.
2001-11-12Bring in more changes from NetBSD. Mostly pagedaemon improvements.Artur Grabowski
2001-11-10Merge in some parts of the ubc work that has been done in NetBSD that are notArtur Grabowski
UBC, but prerequsites for it. - Create a daemon that processes async I/O (swap and paging in the future) requests that need processing in process context and that were processed in the pagedaemon before. - Convert some ugly ifdef DIAGNOSTIC code to less intrusive KASSERTs. - misc other cleanups.
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-25Default to disabled zeroing of pages in the idle loop.Artur Grabowski
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-31Allocate page buckets from kernel_map. This should save a goodArtur Grabowski
amount of kmem_map on machines with lots of physical memory.
2001-07-25Some updates to UVM from NetBSD. Nothing really critical, just a sync.Artur Grabowski
2001-07-19Missed one in PMAP_NEW fix.Artur Grabowski