summaryrefslogtreecommitdiff
path: root/sys/uvm/uvm_pglist.c
AgeCommit message (Collapse)Author
2008-10-01In uvm_pglistalloc(), do not fall through the success code if we could not findMiod Vallat
a suitable range and ran out of memory segments. Oops.
2008-06-27uvm_pglistalloc() works by walking the physical address range it gets invokedMiod Vallat
with, trying to find free pages matching the callers requirement. However, on systems with noncontiguous memory and large gaps between segments, this is a disaster as soon as one of these gaps is hit. Rewrite the logic by iterating on the physsegs, and the on the intersection of the physseg range and the callers range. This also frees us from having to check whether a given page range crosses a physseg.
2008-06-26First pass at removing clauses 3 and 4 from NetBSD licenses.Ray Lai
Not sure what's more surprising: how long it took for NetBSD to catch up to the rest of the BSDs (including UCB), or the amount of code that NetBSD has claimed for itself without attributing to the actual authors. OK deraadt@
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-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-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")
2007-02-12Let this compile with 'option DEBUG' again.Tom Cosgrove
ok dim@
2007-01-16Implement multiple segment allocation for uvm_pglistalloc, which fixesDimitry Andric
most agp_generic_bind_memory failures when memory is limited and very fragmented. In effect, this should fix a lot of X startup crashes after activities that exercise memory a lot (e.g. make builds, building big ports, etc). ok mickey, miod
2006-06-01Make umv_pglistalloc() return EINVAL if it is asked for 0 bytes. ThisKenneth R Westerback
will prevent panics in, e.g., bus_dmamem_alloc(). ok jason@ art@
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
2002-10-07this removes the functionality of adding allocatedMichael Shalayeff
pages into the queue already containing allocated pages. breaks i386:setup_buffers() because of this.
2002-10-06Initialize the result list in uvm_pglistalloc.Artur Grabowski
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-11-28Sync in more uvm from NetBSD. Mostly just cosmetic stuff.Artur Grabowski
Contains also support for page coloring.
2001-11-12Bring in more changes from NetBSD. Mostly pagedaemon improvements.Artur Grabowski
2001-11-07Another sync of uvm to NetBSD. Just minor fiddling, no major changes.Artur Grabowski
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-08-11Various random fixes from NetBSD.Artur Grabowski
Including support for zeroing pages in the idle loop (not enabled yet).
2001-03-08Replace thread_wakeup() with wakeup(). It is defined in vm_extern.h as asmart
wrapper, so this removes a dependence on the old VM system. From NetBSD. art@ ok
2001-01-29$OpenBSD$Niklas Hallqvist
2000-03-16Bring in some new UVM code from NetBSD (not current).Artur Grabowski
- Introduce a new type of map that are interrupt safe and never allow faults in them. mb_map and kmem_map are made intrsafe. - Add "access protection" to uvm_vslock (to be passed down to uvm_fault and later to pmap_enter). - madvise(2) now works. - various cleanups.
1999-08-23sync with NetBSD from 1999.05.24 (there is a reason for this date)Artur Grabowski
Mostly cleanups, but also a few improvements to pagedaemon for better handling of low memory and/or low swap conditions.
1999-02-26add OpenBSD tagsArtur Grabowski
1999-02-26Import of uvm from NetBSD. Some local changes, some code disabledArtur Grabowski