summaryrefslogtreecommitdiffstats
path: root/sys/uvm/uvm_object.c (follow)
Commit message (Collapse)AuthorAgeFilesLines
* Grab the `pageqlock' before calling uvm_pageclean() as intended.mpi2020-11-241-1/+3
| | | | | | | | | Document which global data structures require this lock and add some asserts where the lock should be held. Some code paths are still incorrect and should be revisited. ok jmatthew@
* Constify and use C99 initializer for "struct uvm_pagerops".mpi2020-10-211-2/+2
| | | | | | | | | While here put some KERNEL_ASSERT_LOCKED() in the functions called from the page fault handler. The removal of locking of `uobj' will need to be revisited and these are good indicator that something is missing and that many comments are lying. ok kettenis
* Include <sys/systm.h> directly instead of relying on uvm_map.h to pull it.mpi2020-09-131-1/+2
|
* Add uvm_objfree function to free all pages in a uvm_obj in one go.beck2019-11-291-1/+30
| | | | | | | | | | Use this in the buffer cache to free all the pages from a buffer, resulting in a considerable speedup when throwing away pages from the buffer cache. Lots of work done with mlarkin and kettenis ok kettinis@ deraadt@
* move the vm_page struct from being stored in RB macro trees to RBT functionsdlg2016-09-161-2/+2
| | | | | | | vm_page structs go into three trees, uvm_objtree, uvm_pmr_addr, and uvm_pmr_size. all these have been moved to RBT code. this should give us a decent chunk of code space back.
* Remove the unused loan_count field and the related uvm logic. Most ofvisa2015-08-211-17/+1
| | | | | | the page loaning code is already in the Attic. ok kettenis@, beck@
* remove lock.h from uvm_extern.h. another holdover from the simpletonlocktedu2014-12-171-1/+2
| | | | | era. fix uvm including c files to include lock.h or atomic.h as necessary. ok deraadt
* Prefer MADV_* over POSIX_MADV_* in kernel for consistency: the latterguenther2014-12-171-2/+2
| | | | | | doesn't have all the values and therefore can't be used everywhere. ok deraadt@ kettenis@
* Replace a plethora of historical protection options with justderaadt2014-11-161-2/+3
| | | | | | | PROT_NONE, PROT_READ, PROT_WRITE, and PROT_EXEC from mman.h. PROT_MASK is introduced as the one true way of extracting those bits. Remove UVM_ADV_* wrapper, using the standard names. ok doug guenther kettenis
* remove uneeded proc.h includesjsg2014-09-141-2/+1
| | | | ok mpi@ kspillner@
* Fix some potential integer overflows caused by converting a page number intokettenis2014-05-081-6/+6
| | | | | | | | | | an offset/size/address by shifting by PAGE_SHIFT. Make uvm_objwrire/unwire use voff_t instead of off_t. The former is the right type here even if it is equivalent to the latter. Inspired by a somewhat similar changes in Bitrig. ok deraadt@, guenther@
* remove simple_locks from uvm code. ok beck deraadttedu2013-05-301-8/+1
|
* Unbreak ramdisks.oga2010-05-011-1/+3
| | | | | | | | I forgot that uvm_object.c wasn't build if SMALL_KERNEL. Fix this by building the file unconditionally and only building the less used functions when SMALL_KERNEL is not defined. unbreaks ramdisk build. ok jsg@
* Right now, if anything internal changes with a uvm object, diverseoga2010-04-301-1/+13
| | | | | | | | | | | | places in the tree need to be touched to update the object initialisation with respect to that. So, make a function (uvm_initobj) that takes the refcount, object and pager ops and does this initialisation for us. This should save on maintainance in the future. looked good to fgs@. Tedu complained about the British spelling but OKed it anyway.
* the atomic primitives are still impossible to get at without using proc.hderaadt2010-04-211-3/+2
| | | | | | (because it pulls in so much of the world) so include it for now, but mark it XXX ok tedu
* something hairy happened with cvs so this file didn't get added.oga2009-11-251-0/+159
| | | | | | | re-add uvm_objwire and uvm_objunwire. "you may commit that" kettenis@ original diff oked by ariane@ and art@
* Backout all changes to uvm after pmemrange (which will be backed outoga2009-06-161-159/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | 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@.
* Add uvm_objwire() and uvm_objunwire(), I need this for some of my crazyoga2009-06-061-0/+159
shitz. Code mostly from netbsd with some tweaks from me. The loaning case is specifcically if 0ed out right now because we do not do loaning. ok ariane@, art@.